日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于this的指向

發(fā)布時間:2024/4/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于this的指向 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


一個函數(shù)中的this關(guān)鍵字的指向——通常情況,如果一個函數(shù)所屬一個對象,那么這個函數(shù)被這個函數(shù)所屬的對象調(diào)用執(zhí)行,那么這個this就指向這個這個函數(shù)所屬的對象


注意:函數(shù)中的this指向是在調(diào)用時(運行時)決定的,而不是在函數(shù)定義的時候決定的。




例1.

function test(){return this; }test(); //window window.test(); //window

這是一個函數(shù)聲明,由于 test 所屬于window對象,在我們調(diào)用test()的時候?qū)嶋H上調(diào)用test的對象是window(全局對象),所以this指向window。



例2.

var obj = {test:function(){return this;} }obj.test(); //obj

因為test所屬于obj對象,并且由obj對象調(diào)用,所以this指向obj。



例3.

var obj = {a:{test:function(){return this;}} }obj.a.test();

這里的test所屬于a對象,并且由a對象調(diào)用,所以this指向a。
雖然a屬于obj,但 test函數(shù) 所屬于a對象,而不屬于obj對象。



例4.

var test = function(callBack){callBack(); }test(function(){console.log(this); //window })

這個回調(diào)函數(shù)里面的this指向window,因為這個匿名函數(shù)由參數(shù)調(diào)用,這個調(diào)用者(也就是這個參數(shù))不所屬于任何對象,所以默認(rèn)的指向了window。



例5.

var test = function(){arguments[0](); }test(function(){console.log(this); //arguments })

這個是由arguments對象調(diào)用,在傳遞參數(shù)時js自動把傳遞的匿名函數(shù)掛載到了arguments對象下,所以這個匿名函數(shù)也是所屬于arguments對象的,所以this指向了arguments。



例6.

var obj = {str:"1"}; var obj2 = {test:function(){return this;} } obj2.test(); //obj2obj.Fn = obj2.test; obj.Fn(); //objvar temp = obj2.test; temp(); //window window.temp() //window

由最終調(diào)用執(zhí)行test的對象決定了test內(nèi)的this的指向。



例7.(new關(guān)鍵字)

function test(){************---[[return undefined]]--- } Test();

如果不使用new關(guān)鍵字調(diào)用執(zhí)行,test里面的this指向調(diào)用執(zhí)行test的對象。
如果不顯示的在代碼里面使用return,那么這個函數(shù)內(nèi)部會默認(rèn)的返回undefined。

function Test(){************---[[return this]]--- } var A = new Test();

如果使用new關(guān)鍵字調(diào)用執(zhí)行,構(gòu)造函數(shù)里面的this指向創(chuàng)建的實例對象A。
如果不顯示的在代碼里面使用return返回({},[],RegExp, Date, Function),那么這個構(gòu)造函數(shù)內(nèi)部會默認(rèn)返回this(也就是創(chuàng)建的實例對象A)。


轉(zhuǎn)載于:https://www.cnblogs.com/liu-di/p/10396083.html

總結(jié)

以上是生活随笔為你收集整理的关于this的指向的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。