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

資訊專欄INFORMATION COLUMN

this、apply、call和bind

BlackHole1 / 1056人閱讀

摘要:總是指向一個(gè)對(duì)象,而具體指向哪個(gè)對(duì)象是在運(yùn)行時(shí)基于函數(shù)的執(zhí)行環(huán)境動(dòng)態(tài)綁定的,而非函數(shù)被聲明時(shí)的環(huán)境。參數(shù)傳入?yún)?shù)的一個(gè)數(shù)組,參數(shù)個(gè)數(shù)是確定的。接收不確定參數(shù)第一個(gè)參數(shù)一個(gè)對(duì)象,用于指定的指向,默認(rèn)不設(shè)置或者設(shè)置為的情況下指向的是。

this總是指向一個(gè)對(duì)象,而具體指向哪個(gè)對(duì)象是在運(yùn)行時(shí)基于函數(shù)的執(zhí)行環(huán)境動(dòng)態(tài)綁定的,而非函數(shù)被聲明時(shí)的環(huán)境。
this的指向大致可以分為以下四種:
◎ 作為對(duì)象的方法調(diào)用
◎ 作為普通函數(shù)調(diào)用
◎ 構(gòu)造器調(diào)用
◎ Function.prototype.call或Function.prototype.apply調(diào)用

丟失的this:
var obj={
myName:"sven",
getName:function(){
    return this.myName;
}
}
console.log(obj.getName());//輸出:"sven"

var getName2 = obj.getName;
console.log(getName2());//輸出:"undefined"

分析:

驗(yàn)證:

//設(shè)置全局變量
var  myName = "Windows.name";
var obj={
myName:"sven",
getName:function(){
    return this.myName;
}
}
console.log(obj.getName());//輸出:"sven"

var getName2 = obj.getName;
console.log(getName2());//輸出:"Windows.name"

apply和call方法的用法:

apply(obj,[argument1,argument2,….]) 接收兩個(gè)參數(shù):【參數(shù)1】一個(gè)對(duì)象,用于指定this的指向,默認(rèn)不設(shè)置或者設(shè)置為null的情況下指向的是window。【參數(shù)2】傳入?yún)?shù)的一個(gè)數(shù)組,參數(shù)個(gè)數(shù)是確定的。
call(obj,argument1,argument2,….) 接收不確定參數(shù):【第一個(gè)參數(shù)】一個(gè)對(duì)象,用于指定this的指向,默認(rèn)不設(shè)置或者設(shè)置為null的情況下指向的是window。【后面的參數(shù)】傳入的參數(shù),參數(shù)個(gè)數(shù)是不確定的。
代碼驗(yàn)證:

bind()的用法:

接著上面的代碼:

局部變量不被銷毀的原因:

利用閉包實(shí)現(xiàn)局部變量不被銷毀:

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

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

相關(guān)文章

  • JS基礎(chǔ)篇--callapplybind方法詳解

    摘要:首先我們可以通過(guò)給目標(biāo)函數(shù)指定作用域來(lái)簡(jiǎn)單實(shí)現(xiàn)方法保存,即調(diào)用方法的目標(biāo)函數(shù)考慮到函數(shù)柯里化的情況,我們可以構(gòu)建一個(gè)更加健壯的這次的方法可以綁定對(duì)象,也支持在綁定的時(shí)候傳參。原因是,在中,多次是無(wú)效的。而則會(huì)立即執(zhí)行函數(shù)。 bind 是返回對(duì)應(yīng)函數(shù),便于稍后調(diào)用;apply 、call 則是立即調(diào)用 。 apply、call 在 javascript 中,call 和 apply 都是...

    lastSeries 評(píng)論0 收藏0
  • JS中的callapplybind方法詳解

    摘要:不能應(yīng)用下的等方法。首先我們可以通過(guò)給目標(biāo)函數(shù)指定作用域來(lái)簡(jiǎn)單實(shí)現(xiàn)方法保存,即調(diào)用方法的目標(biāo)函數(shù)考慮到函數(shù)柯里化的情況,我們可以構(gòu)建一個(gè)更加健壯的這次的方法可以綁定對(duì)象,也支持在綁定的時(shí)候傳參。原因是,在中,多次是無(wú)效的。 bind 是返回對(duì)應(yīng)函數(shù),便于稍后調(diào)用;apply 、call 則是立即調(diào)用 。 apply、call 在 javascript 中,call 和 apply 都是...

    zombieda 評(píng)論0 收藏0
  • this總結(jié)【2】—— call/applybind

    摘要:和概覽我們要將歸為一類,單獨(dú)歸為一類三者的共同點(diǎn)是都可以指定和都是綁定在的原型上的,所以的實(shí)例都可以調(diào)用這三個(gè)方法至于為什么,看完這篇文章你就懂了如果你不懂什么是實(shí)例的話,請(qǐng)移步深入淺出面向?qū)ο蠛驮透拍钇钊霚\出面向?qū)ο蠛驮透拍钇谝粋€(gè) 1.call/apply和bind概覽 我們要將call/apply歸為一類,bind單獨(dú)歸為一類 三者的共同點(diǎn)是都可以指定this call/...

    wudengzan 評(píng)論0 收藏0
  • 前端基礎(chǔ):call,apply,bind的的理解

    摘要:和區(qū)別其實(shí)他們的作用是一樣的,只是傳遞的參數(shù)不一樣而已。接受個(gè)參數(shù),第一個(gè)參數(shù)指定了函數(shù)體內(nèi)對(duì)象的指向,第二個(gè)參數(shù)為數(shù)組或者一個(gè)類數(shù)組。看個(gè)栗子一個(gè)有意思的事在中,多次是無(wú)效的。而則會(huì)立即執(zhí)行函數(shù)。 背景 前兩天在做小程序的需求的時(shí)候用到bind的時(shí)候才想起自己對(duì)這三的東西的了解比較淺薄,這個(gè)時(shí)候用的時(shí)候就有點(diǎn)怕。時(shí)候還是要好好學(xué)習(xí)下,理解下怎么玩。 正文 先說(shuō)call 和 apply...

    netmou 評(píng)論0 收藏0
  • javascript關(guān)于this 以及this的顯示設(shè)置(applycallbind)

    摘要:如果連續(xù)呢結(jié)果會(huì)是什么結(jié)果還是第一個(gè)原因是,在中,多次是無(wú)效的。更深層次的原因,的實(shí)現(xiàn),相當(dāng)于使用函數(shù)在內(nèi)部包了一個(gè),第二次相當(dāng)于再包住第一次故第二次以后的是無(wú)法生效的。 this 1.其實(shí)js中的this沒(méi)那么難理解,當(dāng)找不到this時(shí)記住一句話:誰(shuí)調(diào)我,我就指誰(shuí)!new 誰(shuí)指誰(shuí) function text1(){ console.log(this); //指wind...

    LiveVideoStack 評(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)論

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