this的用法詳解

js中this的用法比較雜亂,這里總結(jié)一下。

一:全局作用域中this指向window對(duì)象。

var number = 10;

this.number == window.number ? ?// true

二:在函數(shù)內(nèi)部被調(diào)用。

1)“use strict” 模式下返回 undefined;

2)非 "use strict" 模式下 返回 window 對(duì)象,無論是被嵌套多少層,在function內(nèi)部的this,都指向window對(duì)象。

三:在實(shí)例對(duì)象中被調(diào)用,指向離它最近的那個(gè)對(duì)象。

var obj = {

? ? name : "obj",

? ? say : function(){

? ? ? ? ? console.log(this.name);

? ? }

}

上面例子中,離this最近的對(duì)象實(shí)例是obj,所以this指向obj。

var obj = {

name : "obj",

kid : {

name : "kid",

say : function(){

console.log(this.name);

}

}

}

上面的this指向obj.kid。

四:構(gòu)造函數(shù)中的this指向new出來的實(shí)例對(duì)象。

五:DOM中的事件綁定,this指向綁定的DOM元素。

DOM對(duì)象綁定是一個(gè)具體情況,普遍情況可以解釋為:在回調(diào)函數(shù)中的this,指向調(diào)用這個(gè)回調(diào)函數(shù)的對(duì)象,比如window.setTimeout中的this指向window。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 單例模式 適用場(chǎng)景:可能會(huì)在場(chǎng)景中使用到對(duì)象,但只有一個(gè)實(shí)例,加載時(shí)并不主動(dòng)創(chuàng)建,需要時(shí)才創(chuàng)建 最常見的單例模式,...
    Obeing閱讀 2,110評(píng)論 1 10
  • 工廠模式類似于現(xiàn)實(shí)生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情,實(shí)現(xiàn)同樣的效果;這時(shí)候需要使用工廠模式。簡單...
    舟漁行舟閱讀 7,854評(píng)論 2 17
  • ECMAScript關(guān)鍵字 delete do else finally function in instance...
    doudou2閱讀 731評(píng)論 0 0
  • 原文: https://github.com/ecomfe/spec/blob/master/javascript...
    zock閱讀 3,408評(píng)論 2 36
  • [導(dǎo)語]星座屋面相小分析,我們都知道,額頭為天倉,三停中的上停,如果額頭有明顯的豎紋,那面相含義又是什么呢?下面小...
    沉夢(mèng)聽閱讀 3,777評(píng)論 0 0