成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

如何要判斷一個(gè)運(yùn)行中函數(shù)的 this 綁定

yedf / 2006人閱讀

摘要:來(lái)自你不知道的如果要判斷一個(gè)運(yùn)行中函數(shù)的綁定,就需要找到這個(gè)函數(shù)的直接調(diào)用位置。中的箭頭函數(shù)并不會(huì)使用四條標(biāo)準(zhǔn)的綁定規(guī)則,而是根據(jù)當(dāng)前的詞法作用域來(lái)決定,具體來(lái)說(shuō),箭頭函數(shù)會(huì)繼承外層函數(shù)調(diào)用的綁定無(wú)論綁定到什么。

來(lái)自你不知道的JavaScript

如果要判斷一個(gè)運(yùn)行中函數(shù)的 this 綁定,就需要找到這個(gè)函數(shù)的直接調(diào)用位置。找到之后
就可以順序應(yīng)用下面這四條規(guī)則來(lái)判斷 this 的綁定對(duì)象。

由new調(diào)用?綁定到新創(chuàng)建的對(duì)象。

由call或者apply(或者bind)調(diào)用?綁定到指定的對(duì)象。

由上下文對(duì)象調(diào)用?綁定到那個(gè)上下文對(duì)象。

默認(rèn):在嚴(yán)格模式下綁定到undefined,否則綁定到全局對(duì)象。
一定要注意,有些調(diào)用可能在無(wú)意中使用默認(rèn)綁定規(guī)則。如果想“更安全”地忽略 this 綁 定,你可以使用一個(gè) DMZ 對(duì)象,比如 ? = Object.create(null),以保護(hù)全局對(duì)象。

ES6 中的箭頭函數(shù)并不會(huì)使用四條標(biāo)準(zhǔn)的綁定規(guī)則,而是根據(jù)當(dāng)前的詞法作用域來(lái)決定 this,具體來(lái)說(shuō),箭頭函數(shù)會(huì)繼承外層函數(shù)調(diào)用的 this 綁定(無(wú)論 this 綁定到什么)。這 其實(shí)和 ES6 之前代碼中的 self = this 機(jī)制一樣。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/83481.html

相關(guān)文章

  • 理解JavaScript核心知識(shí)點(diǎn):This

    摘要:關(guān)鍵字計(jì)算為當(dāng)前執(zhí)行上下文的屬性的值。毫無(wú)疑問(wèn)它將指向了這個(gè)前置的對(duì)象。構(gòu)造函數(shù)也是同理。嚴(yán)格模式無(wú)論調(diào)用位置,只取顯式給定的上下文綁定的,通過(guò)方法傳入的第一參數(shù),否則是。其實(shí)并不屬于特殊規(guī)則,是由于各種事件監(jiān)聽(tīng)定義方式本身造成的。 this 是 JavaScript 中非常重要且使用最廣的一個(gè)關(guān)鍵字,它的值指向了一個(gè)對(duì)象的引用。這個(gè)引用的結(jié)果非常容易引起開(kāi)發(fā)者的誤判,所以必須對(duì)這個(gè)關(guān)...

    TerryCai 評(píng)論0 收藏0
  • this是什么以及如何判斷

    摘要:這也是為什么在后,諸如這類寫越來(lái)越少的原因定時(shí)器對(duì)的影響調(diào)用的代碼運(yùn)行在與所在函數(shù)完全分離的執(zhí)行環(huán)境上。 總結(jié)下對(duì)this的學(xué)習(xí)與理解 轉(zhuǎn)眼前端的學(xué)習(xí)已有一年,日常寫代碼中經(jīng)常碰到this這個(gè)東西。特別是在用vue的時(shí)候,this還是有點(diǎn)多的,哈哈。在翻閱了一部分書籍和一堆大佬的博客后,決定總結(jié)一下這些東西,下面談?wù)勎覍?duì)this的一些理解,如果有錯(cuò)誤,歡迎大家批評(píng)指正。如果可以給你帶來(lái)...

    Freelander 評(píng)論0 收藏0
  • 如何一個(gè)實(shí)用bind?

    摘要:方法創(chuàng)建一個(gè)新的函數(shù)當(dāng)被調(diào)用時(shí),它的關(guān)鍵字被設(shè)置為提供的值。語(yǔ)法簡(jiǎn)單地看一下這些參數(shù)的含義當(dāng)綁定函數(shù)被調(diào)用時(shí),該參數(shù)會(huì)作為原函數(shù)運(yùn)行時(shí)的指向當(dāng)使用操作符調(diào)用綁定函數(shù)時(shí),該參數(shù)無(wú)效。結(jié)尾文章很簡(jiǎn)短,知道怎么實(shí)現(xiàn)一個(gè)原生的就行。 前言 這是underscore.js源碼分析的第五篇,如果你對(duì)這個(gè)系列感興趣,歡迎點(diǎn)擊 underscore-analysis/ watch一下,隨時(shí)可以看到動(dòng)態(tài)...

    zhaofeihao 評(píng)論0 收藏0
  • 如何一個(gè)實(shí)用bind?

    摘要:方法創(chuàng)建一個(gè)新的函數(shù)當(dāng)被調(diào)用時(shí),它的關(guān)鍵字被設(shè)置為提供的值。語(yǔ)法簡(jiǎn)單地看一下這些參數(shù)的含義當(dāng)綁定函數(shù)被調(diào)用時(shí),該參數(shù)會(huì)作為原函數(shù)運(yùn)行時(shí)的指向當(dāng)使用操作符調(diào)用綁定函數(shù)時(shí),該參數(shù)無(wú)效。結(jié)尾文章很簡(jiǎn)短,知道怎么實(shí)現(xiàn)一個(gè)原生的就行。 前言 這是underscore.js源碼分析的第五篇,如果你對(duì)這個(gè)系列感興趣,歡迎點(diǎn)擊 underscore-analysis/ watch一下,隨時(shí)可以看到動(dòng)態(tài)...

    Prasanta 評(píng)論0 收藏0
  • 小菊花課堂之JavaScript關(guān)于this

    摘要:另外,的綁定和函數(shù)聲明的位置沒(méi)有任何關(guān)系,之取決于函數(shù)的調(diào)用方式。請(qǐng)看下面代碼這樣,我們就可以在調(diào)用的時(shí)候強(qiáng)制把它的綁定到上綁定在傳統(tǒng)的面向類語(yǔ)言中,使用初始化類時(shí)會(huì)調(diào)用類中的構(gòu)造函數(shù)。 關(guān)于this 上一章我們講了關(guān)于作用域和閉包的相關(guān)知識(shí),現(xiàn)在開(kāi)始新一輪的學(xué)習(xí),那就是JavaScript中最復(fù)雜的機(jī)制之一---this關(guān)鍵字。它是一個(gè)很特別的關(guān)鍵字,被自動(dòng)定義在所有函數(shù)的作用域中。...

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

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

0條評(píng)論

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