国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

javascript的this的理解

jimhs / 2821人閱讀

摘要:的關(guān)鍵字總是讓人捉摸不透,關(guān)鍵字代表函數(shù)運(yùn)行時(shí),自動(dòng)生成的一個(gè)內(nèi)部對(duì)象,只能在函數(shù)內(nèi)部使用,因?yàn)楹瘮?shù)的調(diào)用場(chǎng)景不同,的指向也不同。其實(shí)只要理解語(yǔ)言的特性就很好理解。個(gè)人對(duì)中的關(guān)鍵字的理解如上,如有不正,望指正,謝謝。

javascript的this關(guān)鍵字總是讓人捉摸不透,this關(guān)鍵字代表函數(shù)運(yùn)行時(shí),自動(dòng)生成的一個(gè)內(nèi)部對(duì)象,只能在函數(shù)內(nèi)部使用,因?yàn)楹瘮?shù)的調(diào)用場(chǎng)景不同,this的指向也不同。其實(shí)只要理解javascript語(yǔ)言的特性就很好理解this。在javascript中,函數(shù)可以直接調(diào)用:

function range(){
    this.min = 5;
}
range()
console.info(min)  ==>    5

這里函數(shù)range是在全局中運(yùn)行的,所以this指向全局對(duì)象,在瀏覽器中全局對(duì)象是window。函數(shù)也可以作為對(duì)象的方法調(diào)用,如下:

var range = {
    setmin : function(){
        this.min = 5;
    }
}

range.setmin();
console.log(min);   ==> undefined
console.log(range.min) ==> 5 

當(dāng)作為對(duì)象方法調(diào)用時(shí),this指向的是調(diào)用對(duì)象,而不是全局對(duì)象。
當(dāng)函數(shù)作為構(gòu)造函數(shù)時(shí),和作為對(duì)象方法一樣,this指向調(diào)用函數(shù)的對(duì)象。不重復(fù)贅述,還有javascript還提供apply和call方法來(lái)改變this綁定的對(duì)象。這里不詳細(xì)討論,你們可以自行百度一下apply和call方法是怎么改變this綁定對(duì)象的 。我們最后討論討論當(dāng)this關(guān)鍵字在閉包中時(shí)的情況,下面的this在閉包中:

var range = {
    setrange : function(){
        this.min = 5;
        var setmax = function(){
            this.max = 100;
        };
        setmax();
    }
};

range.setrange();
console.log(range.min);   ==> 5
console.log(range.max);   ==> undefined
console.log(max);         ==> 100

這里max應(yīng)該是作為range的屬性,可實(shí)際上確是全局的,this指向了全局對(duì)象,按道理講this.max的this應(yīng)該綁定到外層函數(shù)的調(diào)用對(duì)象上,實(shí)際上綁定到了全局,是不是很神奇,這應(yīng)該是javascript的一個(gè)設(shè)計(jì)缺陷。
個(gè)人對(duì)javascript中的this關(guān)鍵字的理解如上,如有不正,望指正,謝謝。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/86438.html

相關(guān)文章

  • 我對(duì)JavaScriptthis一些理解

    摘要:匿名函數(shù)的執(zhí)行環(huán)境具有全局性,因此它的對(duì)象通常指向。如果對(duì)此有疑惑,可以看知乎上的答案知乎匿名函數(shù)的指向?yàn)槭裁词亲鳛閷?duì)象方法的調(diào)用,指向該對(duì)象當(dāng)函數(shù)作為某個(gè)對(duì)象的方法調(diào)用時(shí),就指這個(gè)函數(shù)所在的對(duì)象。 因?yàn)槿粘9ぷ髦薪?jīng)常使用到this,而且在JavaScript中this的指向問(wèn)題也很容易讓人混淆一部分知識(shí)。 這段時(shí)間翻閱了一些書(shū)籍也查閱了網(wǎng)上一些資料然后結(jié)合自己的經(jīng)驗(yàn),為了能讓自...

    focusj 評(píng)論0 收藏0
  • 理解 JavaScript this

    摘要:回調(diào)函數(shù)在回調(diào)函數(shù)中的指向也會(huì)發(fā)生變化。在閉包回調(diào)函數(shù)賦值等場(chǎng)景下我們都可以利用來(lái)改變的指向,以達(dá)到我們的預(yù)期。文章參考系列文章理解閉包理解執(zhí)行棧理解作用域理解數(shù)據(jù)類(lèi)型與變量原文發(fā)布在我的公眾號(hào),點(diǎn)擊查看。 這是本系列的第 5 篇文章。 還記得上一篇文章中的閉包嗎?點(diǎn)擊查看文章 理解 JavaScript 閉包 。 在聊 this 之前,先來(lái)復(fù)習(xí)一下閉包: var name = Nei...

    zombieda 評(píng)論0 收藏0
  • javascript技術(shù)難點(diǎn)(三)之this、new、apply和call詳解

    摘要:第四點(diǎn)也要著重講下,記住構(gòu)造函數(shù)被操作,要讓正常作用最好不能在構(gòu)造函數(shù)里 4) this、new、call和apply的相關(guān)問(wèn)題 講解this指針的原理是個(gè)很復(fù)雜的問(wèn)題,如果我們從javascript里this的實(shí)現(xiàn)機(jī)制來(lái)說(shuō)明this,很多朋友可能會(huì)越來(lái)越糊涂,因此本篇打算換一個(gè)思路從應(yīng)用的角度來(lái)講解this指針,從這個(gè)角度理解this指針更加有現(xiàn)實(shí)意義。 下面我們看看在ja...

    ghnor 評(píng)論0 收藏0
  • 加深對(duì) JavaScript This 理解

    摘要:使用來(lái)調(diào)用函數(shù),會(huì)自動(dòng)執(zhí)行下面操作創(chuàng)建一個(gè)全新的對(duì)象。所以如果是一個(gè)函數(shù)的話,會(huì)是這樣子的創(chuàng)建一個(gè)新對(duì)象連接新對(duì)象與函數(shù)的原型執(zhí)行函數(shù),改變指向新的對(duì)象所以,在使用來(lái)調(diào)用函數(shù)時(shí)候,我們會(huì)構(gòu)造一個(gè)新對(duì)象并把它綁定到函數(shù)調(diào)用中的上。 歡迎來(lái)我的博客閱讀:《加深對(duì) JavaScript This 的理解》 我相信你已經(jīng)看過(guò)很多關(guān)于 JavaScript 的 this 的談?wù)摿耍热荒泓c(diǎn)進(jìn)來(lái)...

    PiscesYE 評(píng)論0 收藏0
  • 理解 JavaScript call()/apply()/bind()

    摘要:理解文章中已經(jīng)比較全面的分析了在中的指向問(wèn)題,用一句話來(lái)總結(jié)就是的指向一定是在執(zhí)行時(shí)決定的,指向被調(diào)用函數(shù)的對(duì)象。與和直接執(zhí)行原函數(shù)不同的是,返回的是一個(gè)新函數(shù)。這個(gè)新函數(shù)包裹了原函數(shù),并且綁定了的指向?yàn)閭魅氲摹? 理解 JavaScript this 文章中已經(jīng)比較全面的分析了 this 在 JavaScript 中的指向問(wèn)題,用一句話來(lái)總結(jié)就是:this 的指向一定是在執(zhí)行時(shí)決定的,...

    duan199226 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

jimhs

|高級(jí)講師

TA的文章

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