JavaScript中常見的this的指向

1.最常見的情況下,函數(shù)中的this是指向頂層對象window的。

列如這個下面這段代碼:

var a=2;

function showThis()

{

var a=1;

console.log(this.a);

}

showThis();


this指向了window對象

結(jié)果輸出的應(yīng)該是2.

2.如果this所在的函數(shù)是對象的屬性,那么默認(rèn)情況下this會指向該對象

如下面這段示例代碼:

var a=2;

var obj={

a:1,

fun:function(){

console.log(this.a);

}

};

obj.fun();


this指向了Object

最終輸出的結(jié)果應(yīng)該是1.

3.JavaScript函數(shù)call()或Apply()強(qiáng)制this指向第一個參數(shù)對象

如下面這一小段示例代碼:

var a=2;

var obj={

a:1,

fun:function(){

console.log(this.a);

}

};

var obj2={

a:3

};

obj.fun.call(obj2);


this指向Object

最終程序的輸出結(jié)果為3.是obj2的a屬性的值。

4 javascript通過new關(guān)鍵字創(chuàng)建的對象,函數(shù)中的this會在創(chuàng)建成功后指向被創(chuàng)建的對象

如下面的示例代碼:

var a=2;

function fun(a){

this.a=a;

}

var obj = new fun(3);

console.log(obj.a);


this指向fun

在函數(shù)執(zhí)行完之后,fun會賦值給obj,所以最終this指向obj,輸出結(jié)果為3.

this綁定的優(yōu)先級按照4,3,2,1的順序,new的優(yōu)先級最高。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,555評論 0 13
  • 單例模式 適用場景:可能會在場景中使用到對象,但只有一個實例,加載時并不主動創(chuàng)建,需要時才創(chuàng)建 最常見的單例模式,...
    Obeing閱讀 2,315評論 1 10
  • 在面向?qū)ο蟮恼Z言中(例如Java,C#等),this含義是明確且具體的,即指向當(dāng)前對象。一般在編譯期綁定。而在ja...
    一木_qintb閱讀 436評論 0 0
  • 葡萄藤PPT JS中this的指向 大家好,我是IT修真院鄭州分院第6期的學(xué)員王棟,一枚正直、純潔、善良的前端程序...
    17064閱讀 679評論 0 2
  • 工廠模式類似于現(xiàn)實生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情,實現(xiàn)同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 8,130評論 2 17

友情鏈接更多精彩內(nèi)容