摘要:引用的是函數(shù)功能據(jù)以執(zhí)行的環(huán)境對(duì)象,因此的值與調(diào)用函數(shù)的方式有著密切的關(guān)系。調(diào)用構(gòu)造函數(shù)在調(diào)用構(gòu)造函數(shù)時(shí)返回,指向構(gòu)造函數(shù)創(chuàng)建的實(shí)例中,指向?qū)嵗龑?duì)象。則函數(shù)內(nèi)部的指向方法指定的對(duì)象。若閉包在全局作用域中調(diào)用,則指向。
在函數(shù)創(chuàng)建的時(shí)候,函數(shù)內(nèi)部自動(dòng)獲取到this(還有一個(gè)arguments)。this引用的是函數(shù)功能據(jù)以執(zhí)行的環(huán)境對(duì)象,因此this的值與調(diào)用函數(shù)的方式有著密切的關(guān)系。
作為函數(shù)調(diào)用時(shí),this指向window。
var name = "window"; function sayName() { console.log(this.name); } sayName(); //window
作為對(duì)象的方法調(diào)用時(shí),this指向該對(duì)象。
var obj = { name: "object", sayName: function() { console.log(this.name); } }; obj.sayName(); //object (obj.sayName = obj.sayName)(); //window (obj.sayName, obj.sayName)(); //window
賦值語(yǔ)句和逗號(hào)運(yùn)算符都會(huì)返回后面變量的值,所以后兩者相當(dāng)于在全局中調(diào)用了函數(shù),this指向了window。
調(diào)用構(gòu)造函數(shù)
在調(diào)用構(gòu)造函數(shù)時(shí)返回this,this指向構(gòu)造函數(shù);創(chuàng)建的實(shí)例中,this指向?qū)嵗龑?duì)象。
function Person(n) { console.log(this); this.name = n; this.sayName = function() { return this.name; }; } var person = new Person("hiyohoo"); //Person{} console.log(person.sayName()); //hiyohoo
調(diào)用函數(shù)時(shí)指定this。在調(diào)用函數(shù)時(shí)如果使用函數(shù)方法call()、apply()、bind()。則函數(shù)內(nèi)部的this指向方法指定的對(duì)象。而一旦被bind()指定了this值,之后不管以何種方式調(diào)用函數(shù),其this值始終指向bind()指定的對(duì)象環(huán)境。
var outer = { name: "outer", inner: { name: "inner", t: function() { return this.name; } } }; console.log(outer.inner.t()); //inner console.log(outer.inner.t.bind(outer)()); //outer
閉包中的this。若閉包在全局作用域中調(diào)用,則this指向window。這里我們用定時(shí)器做例子:
var name = "window"; var obj = { name: "object", sayName: function() { setInterval(function() { console.log(this.name); }, 1000); } }; obj.sayName(); //window
作為dom綁定事件的回調(diào)函數(shù)。this指向這個(gè)dom元素。
轉(zhuǎn)載請(qǐng)注明出處:https://segmentfault.com/a/1190000004587440
文章不定期更新完善,如果能對(duì)你有一點(diǎn)點(diǎn)啟發(fā),我將不勝榮幸。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/78867.html
摘要:但是,中并沒(méi)有類的概念,而是通過(guò)構(gòu)造函數(shù)替代了類的功能,為某一類的對(duì)象提供共同的屬性和方法。一只名叫的狗,首先繼承了構(gòu)造函數(shù)的原型對(duì)象,而的原型對(duì)象中的有繼承了函數(shù)的原型對(duì)象,函數(shù)對(duì)象中的有繼承了的原型對(duì)象。 《圣經(jīng)》里的第一章創(chuàng)世紀(jì)中其中有一段經(jīng)典記載上帝是如何創(chuàng)造人的。神說(shuō):我們要照著我們的形象,按照我們的樣式造人。不謀而合的是,JavaScript中似乎也遵循著上帝的旨意去創(chuàng)造程...
摘要:又到一年春招季,們又要奔波于一場(chǎng)又一場(chǎng)的面試。今天就先來(lái)小小總結(jié)一下方面的知識(shí)點(diǎn),方便你我他。在發(fā)送請(qǐng)求前加上。在后面加上時(shí)間搓。這樣頁(yè)面的所有都會(huì)執(zhí)行這條語(yǔ)句就是不需要保存緩存記錄。如何解決跨域問(wèn)題服務(wù)器上設(shè)置代理頁(yè)面 又到一年春招季,coder們又要奔波于一場(chǎng)又一場(chǎng)的面試。今天就先來(lái)小小總結(jié)一下javascript方面的知識(shí)點(diǎn),方便你我他。隨時(shí)補(bǔ)充 js基本數(shù)據(jù)類型 Undef...
摘要:建立索引,記錄每一個(gè)節(jié)點(diǎn)值。選項(xiàng)卡模擬選項(xiàng)卡方法一大清洗,在設(shè)置顏色之前把所有的顏色值設(shè)為空。宋體選項(xiàng)卡一選項(xiàng)卡二選項(xiàng)卡三內(nèi)容一內(nèi)容二內(nèi)容三方法二點(diǎn)擊什么,清除什么。 1.this的使用 this js中的關(guān)鍵字 js內(nèi)部已經(jīng)定義好了,可以不聲明 直接使用 this的指向問(wèn)題 1. 在函數(shù)外部使用 this指向的是window 2...
摘要:建立索引,記錄每一個(gè)節(jié)點(diǎn)值。選項(xiàng)卡模擬選項(xiàng)卡方法一大清洗,在設(shè)置顏色之前把所有的顏色值設(shè)為空。宋體選項(xiàng)卡一選項(xiàng)卡二選項(xiàng)卡三內(nèi)容一內(nèi)容二內(nèi)容三方法二點(diǎn)擊什么,清除什么。 1.this的使用 this js中的關(guān)鍵字 js內(nèi)部已經(jīng)定義好了,可以不聲明 直接使用 this的指向問(wèn)題 1. 在函數(shù)外部使用 this指向的是window 2...
摘要:建立索引,記錄每一個(gè)節(jié)點(diǎn)值。選項(xiàng)卡模擬選項(xiàng)卡方法一大清洗,在設(shè)置顏色之前把所有的顏色值設(shè)為空。宋體選項(xiàng)卡一選項(xiàng)卡二選項(xiàng)卡三內(nèi)容一內(nèi)容二內(nèi)容三方法二點(diǎn)擊什么,清除什么。 1.this的使用 this js中的關(guān)鍵字 js內(nèi)部已經(jīng)定義好了,可以不聲明 直接使用 this的指向問(wèn)題 1. 在函數(shù)外部使用 this指向的是window 2...
閱讀 3905·2021-09-27 13:35
閱讀 1084·2021-09-24 09:48
閱讀 2913·2021-09-22 15:42
閱讀 2354·2021-09-22 15:28
閱讀 3157·2019-08-30 15:43
閱讀 2625·2019-08-30 13:52
閱讀 2982·2019-08-29 12:48
閱讀 1462·2019-08-26 13:55