亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

關(guān)于js中this指向的總結(jié)

zhangfaliang / 1727人閱讀

摘要:中指向問題一直是個(gè)坑,之前一直是懵懵懂懂的,大概知道一點(diǎn),但一直不知道各種情況下指向有什么區(qū)別,今天親自動(dòng)手測試了下的指向。這就是我關(guān)于學(xué)習(xí)的總結(jié),希望能給需要的人點(diǎn)幫助,然后有啥不足希望有大神能指點(diǎn)出來。

js中this指向問題一直是個(gè)坑,之前一直是懵懵懂懂的,大概知道一點(diǎn),但一直不知道各種情況下指向有什么區(qū)別,今天親自動(dòng)手測試了下this的指向。
1.在對象中的this
對象中的this指向我們創(chuàng)建的對象,例如:

var obj ={
    ccc : 1122,
    ffffd : 2233,
    ded : function(){
            console.log(this);
        }  ,
    fff : function(){
            console.log(this === obj );
        }
}
obj.ded();
obj.fff();

在chrome中執(zhí)行的答案如下:

上圖我們可以看出我們執(zhí)行obj對象下的ded函數(shù)時(shí),打印出來的事Object對象里面的所有屬性,展示這個(gè)對象

可以看到obj對象包含的方法和屬性都包含在this對象下面,再運(yùn)行fff函數(shù),把this和obj對象進(jìn)行比較,可以看出這兩個(gè)是恒等的,所以在對象里的this指向這個(gè)對象。

2.直接調(diào)用函數(shù)時(shí)的this指向
先創(chuàng)建一個(gè)函數(shù):

function main(){
    this.aad = 234;
    console.log(this);    
}
main();

運(yùn)行效果如下:

可以看到我們打印出來的this對象指向全局變量window,而創(chuàng)建的aad變量直接包含在了window對象下面了,所以直接調(diào)用函數(shù)時(shí)this是指向window對象的。

3.構(gòu)造函數(shù)中的this指向
當(dāng)我們創(chuàng)建一個(gè)構(gòu)造函數(shù)時(shí),并且實(shí)例化一個(gè)對象時(shí),this的指向哪里呢?先創(chuàng)建一個(gè)函數(shù)

function main(){
    this.aad = 234;
    this.def = function(){
                console.log(this);
            };
    this.foo = function(){
            console.log(this === xxx);
        };
    this.xoo = function(){
            console.log(this === main);
        };
}
var xxx = new main();
xxx.def(); 
xxx.foo();
xxx.xoo();

可以看出xxx.def函數(shù)還是指向main函數(shù),但這只是把上下文給打印出來了,但當(dāng)我們打印this與構(gòu)造函數(shù)以及實(shí)現(xiàn)對象比較時(shí)就可以看出區(qū)別了,與構(gòu)造函數(shù)main比較出來的值是false;與xxx函數(shù)比較時(shí)顯示是true,所以構(gòu)造函數(shù)this事指向當(dāng)前實(shí)例化對象的。

這就是我關(guān)于this學(xué)習(xí)的總結(jié),希望能給需要的人點(diǎn)幫助,然后有啥不足希望有大神能指點(diǎn)出來。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/78849.html

相關(guān)文章

  • 關(guān)于jsthis指向總結(jié)

    摘要:中指向問題一直是個(gè)坑,之前一直是懵懵懂懂的,大概知道一點(diǎn),但一直不知道各種情況下指向有什么區(qū)別,今天親自動(dòng)手測試了下的指向。這就是我關(guān)于學(xué)習(xí)的總結(jié),希望能給需要的人點(diǎn)幫助,然后有啥不足希望有大神能指點(diǎn)出來。 js中this指向問題一直是個(gè)坑,之前一直是懵懵懂懂的,大概知道一點(diǎn),但一直不知道各種情況下指向有什么區(qū)別,今天親自動(dòng)手測試了下this的指向。 1.在對象中的this對象中的t...

    mcterry 評論0 收藏0
  • This 指針--深思

    摘要:當(dāng)代碼在一個(gè)環(huán)境中執(zhí)行時(shí),會(huì)創(chuàng)建變量對象的一個(gè)作用域鏈??梢灾赶虿煌倪\(yùn)行環(huán)境,這里的運(yùn)行環(huán)境本質(zhì)上指的是對象,可以是內(nèi)建對象自定義對象或者全局對象。 今天早上看到公眾號推送了阮一峰老師的文章JavaScript 的 this 原理,文章不是很長于是研究了一下。 看完自己的總結(jié)如下: this this 指向函數(shù)運(yùn)行時(shí)所在的環(huán)境。 函數(shù)運(yùn)行在對象內(nèi),this 就指向該對象 運(yùn)行在全局...

    ernest.wang 評論0 收藏0
  • 關(guān)于javascript類特性一些總結(jié)

    摘要:被克隆的對象稱之為新對象的原型,新對象保存一個(gè)指向其原型的引用。一個(gè)對象是如何與其原型聯(lián)系起來的呢答對象的屬性指向其構(gòu)造函數(shù)的。如何實(shí)現(xiàn)繼承呢使構(gòu)造函數(shù)的等于另一個(gè)構(gòu)造函數(shù)的一個(gè)實(shí)例這樣就使得繼承于。 眾所周知,在javascript這門動(dòng)態(tài)類型語言中,是不存在如傳統(tǒng)靜態(tài)類型語言如c++或java中對類的支持的。后者是天生為面向?qū)ο缶幊潭O(shè)計(jì),其中涉及的一些概念如繼承、多態(tài)、函數(shù)重載在...

    sunsmell 評論0 收藏0
  • jsthis總結(jié)

    摘要:關(guān)于的指向問題算的上是中的一個(gè)十分重要的問題了。首先,的指向問題可以用一句話總結(jié)就是總是指向調(diào)用的對象,也就是說指向誰與函數(shù)聲明的位置沒有關(guān)系,只與調(diào)用的位置有關(guān)。此外注意幾種特殊情況,特別是中的箭頭函數(shù)。 關(guān)于this的指向問題算的上是js中的一個(gè)十分重要的問題了。今天把這個(gè)問題總結(jié)下,加深下自己對this的理解。首先,this的指向問題可以用一句話總結(jié)就是:this總是指向調(diào)用的對...

    light 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<