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