摘要:基本知識(shí)在中屬于經(jīng)常使用的一個(gè)對(duì)象。下面將描述一些案例,帶領(lǐng)大家了解。這里并沒(méi)有發(fā)生你們預(yù)想的而是這個(gè)例子表明了,的綁定只受到最近的成員影響。需要正常的執(zhí)行,才能運(yùn)行。函數(shù)綁定運(yùn)算符是并排的兩個(gè)冒號(hào)這個(gè)提案,現(xiàn)在暫時(shí)只有支持。
基本知識(shí)
this在JavaScript中屬于經(jīng)常使用的一個(gè)對(duì)象。在定義中,在Javascript中this總是指向調(diào)用它所在方法的對(duì)象,誰(shuí)發(fā)起了調(diào)用,this將指向誰(shuí)。
下面將描述一些案例,帶領(lǐng)大家了解this。
全局情況下的thisfunction test () { console.log(this) } test()
直接輸出了window對(duì)象,因?yàn)镴S在查找的時(shí)候,發(fā)現(xiàn)this的指向是undefined,那么在JS會(huì)將this指向到window上。
"use strict" function test () { console.log(this) } test()
嚴(yán)格模式下,JS是不會(huì)將this指向到window上,所以輸出是undefined。
調(diào)用情況下的thisvar obj = { name:"hero" } function test () { console.log(this) } obj.test = test obj.test()
這個(gè)代碼很好的展示了,由誰(shuí)調(diào)用,this就會(huì)被指向調(diào)用方所在對(duì)象。
現(xiàn)在我們來(lái)思考一下,這種情況。
var obj = { name:"hero", proxy:{ name:"proxy hero" } } function test () { console.log(this) } obj.proxy.test = test console.log("obj.proxy.test") obj.proxy.test() var _p = obj.proxy console.log("_p.test") _p.test()
這里并沒(méi)有發(fā)生你們預(yù)想的
obj.proxy.test {name: "hero", proxy: {name: "proxy hero", test: ?}} _p.test {name: "proxy hero", test: ?}
而是
obj.proxy.test {name: "proxy hero", test: ?} _p.test {name: "proxy hero", test: ?}
這個(gè)例子表明了,this的綁定只受到最近的成員影響。所以,此時(shí)的this被綁定在proxy上。
call,apply,bind的thisvar obj = { name:"hero", test (postString) { console.log(this,postString) } } var obj2 = {name:"super hero"} obj.test.call(obj2,"call") obj.test.apply(obj2,["apply"])
call,apply的機(jī)制是一樣的,都是直接修改了內(nèi)部this的指向。唯一的區(qū)別是call傳入?yún)?shù)是挨個(gè)傳入,apply是傳入一整個(gè)參數(shù)數(shù)組。
var obj = { name:"hero", test (postString) { console.log(this,postString) } } var obj2 = {name:"super hero"} obj.test.bind(obj2)("bind")
bind的機(jī)制與其他兩個(gè)是不一樣的,通俗的來(lái)說(shuō),就是bind設(shè)置之后,是蓄勢(shì)待發(fā)。需要正常的執(zhí)行,才能運(yùn)行。這在react中經(jīng)常使用。
在ES6提案中,你還可以使用這種方式進(jìn)行bind。
// 函數(shù)綁定運(yùn)算符是并排的兩個(gè)冒號(hào)(::) var k = obj2::obj.test k("::bind")
這個(gè)提案,現(xiàn)在暫時(shí)只有babel支持。
參考資料https://developer.mozilla.org...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/97159.html
摘要:百度大搜和度秘面經(jīng)百度內(nèi)推投了倆部門(mén)前前后后總計(jì)面了六輪來(lái)寫(xiě)寫(xiě)面經(jīng)攢攢人品大搜是十幾號(hào)面的度秘今天面完下面記錄一些我認(rèn)為比較有價(jià)值的問(wèn)題沒(méi)寫(xiě)全問(wèn)的問(wèn)題太多而且有些也記不清了心累我是分割線下面講正經(jīng)的大搜大搜在百度現(xiàn)場(chǎng)面三小時(shí)面完三輪荒郊野外 百度大搜和度秘面經(jīng) 百度內(nèi)推投了倆部門(mén),前前后后總計(jì)面了六輪,來(lái)寫(xiě)寫(xiě)面經(jīng),攢攢人品.大搜是十幾號(hào)面的,度秘今天面完.下面記錄一些我認(rèn)為比較有價(jià)值...
摘要:百度大搜和度秘面經(jīng)百度內(nèi)推投了倆部門(mén)前前后后總計(jì)面了六輪來(lái)寫(xiě)寫(xiě)面經(jīng)攢攢人品大搜是十幾號(hào)面的度秘今天面完下面記錄一些我認(rèn)為比較有價(jià)值的問(wèn)題沒(méi)寫(xiě)全問(wèn)的問(wèn)題太多而且有些也記不清了心累我是分割線下面講正經(jīng)的大搜大搜在百度現(xiàn)場(chǎng)面三小時(shí)面完三輪荒郊野外 百度大搜和度秘面經(jīng) 百度內(nèi)推投了倆部門(mén),前前后后總計(jì)面了六輪,來(lái)寫(xiě)寫(xiě)面經(jīng),攢攢人品.大搜是十幾號(hào)面的,度秘今天面完.下面記錄一些我認(rèn)為比較有價(jià)值...
摘要:百度大搜和度秘面經(jīng)百度內(nèi)推投了倆部門(mén)前前后后總計(jì)面了六輪來(lái)寫(xiě)寫(xiě)面經(jīng)攢攢人品大搜是十幾號(hào)面的度秘今天面完下面記錄一些我認(rèn)為比較有價(jià)值的問(wèn)題沒(méi)寫(xiě)全問(wèn)的問(wèn)題太多而且有些也記不清了心累我是分割線下面講正經(jīng)的大搜大搜在百度現(xiàn)場(chǎng)面三小時(shí)面完三輪荒郊野外 百度大搜和度秘面經(jīng) 百度內(nèi)推投了倆部門(mén),前前后后總計(jì)面了六輪,來(lái)寫(xiě)寫(xiě)面經(jīng),攢攢人品.大搜是十幾號(hào)面的,度秘今天面完.下面記錄一些我認(rèn)為比較有價(jià)值...
摘要:春招結(jié)果五月份了,春招已經(jīng)接近尾聲,因?yàn)榈搅酥芪逋砩蟿偤糜锌?,所以?jiǎn)單地記錄一下自己的春招過(guò)程。我的春招從二月初一直持續(xù)到四月底,截止今天,已經(jīng)斬獲唯品會(huì)電商前端研發(fā)部大數(shù)據(jù)與威脅分析事業(yè)部京東精銳暑假實(shí)習(xí)生的騰訊的是早上打過(guò)來(lái)的。 春招結(jié)果 五月份了,春招已經(jīng)接近尾聲,因?yàn)榈搅酥芪逋砩蟿偤糜锌眨院?jiǎn)單地記錄一下自己的春招過(guò)程。我的春招從二月初一直持續(xù)到四月底,截止今天,已經(jīng)斬獲唯品...
閱讀 2649·2023-04-26 02:17
閱讀 1623·2021-11-24 09:39
閱讀 1083·2021-11-18 13:13
閱讀 2660·2021-09-02 15:11
閱讀 2784·2019-08-30 15:48
閱讀 3415·2019-08-30 14:00
閱讀 2446·2019-08-29 13:43
閱讀 666·2019-08-29 13:07