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

資訊專欄INFORMATION COLUMN

【常忘系列1】—Function.prototype里面的call和apply

BLUE / 2354人閱讀

摘要:老是忘掉這兩個(gè)東東的用下,寫下來做個(gè)記錄吧。如果第一個(gè)參數(shù)為,函數(shù)體內(nèi)的指向宿主對象,在瀏覽器中是。和的用途改變指向上面的例子就是啦模擬

老是忘掉這兩個(gè)東東的用下,寫下來做個(gè)記錄吧。
他們作用是一模一樣的,只是傳入的參數(shù)不一樣

apply
apply接受兩個(gè)參數(shù),第一個(gè)制定了函數(shù)體內(nèi)this對象的指向,第二個(gè)參數(shù)為一個(gè)帶下標(biāo)的集合(可遍歷對象),apply方法把這個(gè)集合中的元素作為參數(shù)傳遞給被調(diào)用的函數(shù):

var func = function(a, c, c){
    alert([a,b,c]); //[1,2,3]
}
func.apply(null, [1,2,3]);

call
call傳入的參數(shù)不固定,和apply相同的是,第一個(gè)參數(shù)也是代表函數(shù)體內(nèi)的this指向,第二個(gè)參數(shù)開始往后,每個(gè)參數(shù)被依次傳入函數(shù):

var func = function(a, b, c){
    alert([a,b,c]); //[1,2,3]
}
func.call(null, 1,2,3);

call是aplly的一顆語法糖。如果第一個(gè)參數(shù)為null,函數(shù)體內(nèi)的this指向宿主對象,在瀏覽器中是window。

call和apply的用途
1.改變this指向
上面的例子就是啦

2.Function.prototype.bind
模擬Function.prototype.bind

Function.prototype.bind = function(context){
    var self = this;
    return function(){
        return self.apply(context, arguments);
    }
};

var obj = {
    name: "cxs"
};

var func = function(){
    alert(this.name); //cxs
}.bind(obj);

fun();

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

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/79317.html

相關(guān)文章

  • 魔幻語言 JavaScript 系列call、bind 以及上下文

    摘要:那么,它到底是如何工作的呢讓我們從一種更簡單的實(shí)現(xiàn)開始實(shí)際上這種實(shí)現(xiàn)代碼更短,并且更易讀是函數(shù)原型中的一個(gè)函數(shù),它調(diào)用函數(shù),使用第一個(gè)參數(shù)作為參數(shù),并傳遞剩余參數(shù)作為被調(diào)用函數(shù)的參數(shù)。 原文:The Most Clever Line of JavaScript 作者:Seva Zaikov 原文 最近 一個(gè)朋友 發(fā)給我一段非常有趣的 JavaScript 代碼,是他在某個(gè) 開源庫中...

    cuieney 評論0 收藏0
  • 我要懂系列1-callapply

    摘要:和相同點(diǎn)改變指向可以傳參立即調(diào)用區(qū)別接收一個(gè)數(shù)組參數(shù),直接接收參數(shù)的性能會比差,因?yàn)橐獙?shù)組參數(shù)進(jìn)行判斷和解構(gòu)模擬實(shí)現(xiàn)傳遞的如果是或者,那么就是,否則傳遞進(jìn)來的就是要指向的從第二個(gè)參數(shù)開始就是要調(diào)用時(shí)用到參數(shù)的第二個(gè)參數(shù)為數(shù)組,數(shù)組中的元素 call和apply fn.call(isThis, arg1, arg2, ....) fn.apply(isThis, [arg1, arg2...

    Stardustsky 評論0 收藏0
  • JavaScript深入之callapply模擬實(shí)現(xiàn)

    摘要:深入系列第十篇,通過和的模擬實(shí)現(xiàn),帶你揭開和改變的真相一句話介紹方法在使用一個(gè)指定的值和若干個(gè)指定的參數(shù)值的前提下調(diào)用某個(gè)函數(shù)或方法。如果有錯(cuò)誤或者不嚴(yán)謹(jǐn)?shù)牡胤?,請?wù)必給予指正,十分感謝。 JavaScript深入系列第十篇,通過call和apply的模擬實(shí)現(xiàn),帶你揭開call和apply改變this的真相 call 一句話介紹 call: call() 方法在使用一個(gè)指定的 this...

    miya 評論0 收藏0
  • JavaScript深入之bind模擬實(shí)現(xiàn)

    摘要:也就是說當(dāng)返回的函數(shù)作為構(gòu)造函數(shù)的時(shí)候,時(shí)指定的值會失效,但傳入的參數(shù)依然生效。構(gòu)造函數(shù)效果的優(yōu)化實(shí)現(xiàn)但是在這個(gè)寫法中,我們直接將,我們直接修改的時(shí)候,也會直接修改函數(shù)的。 JavaScript深入系列第十一篇,通過bind函數(shù)的模擬實(shí)現(xiàn),帶大家真正了解bind的特性 bind 一句話介紹 bind: bind() 方法會創(chuàng)建一個(gè)新函數(shù)。當(dāng)這個(gè)新函數(shù)被調(diào)用時(shí),bind() 的第一個(gè)參數(shù)...

    FingerLiu 評論0 收藏0
  • javascript原生一步步實(shí)現(xiàn)bind分析

    摘要:綁定函數(shù)被調(diào)用時(shí),也接受預(yù)設(shè)的參數(shù)提供給原函數(shù)。原型鏈官方文檔上有一句話說明綁定過后的函數(shù)被實(shí)例化之后,需要繼承原函數(shù)的原型鏈方法,且綁定過程中提供的被忽略繼承原函數(shù)的對象,但是參數(shù)還是會使用。 bind 官方描述 bind() 函數(shù)會創(chuàng)建一個(gè)新函數(shù)(稱為綁定函數(shù)),新函數(shù)與被調(diào)函數(shù)(綁定函數(shù)的目標(biāo)函數(shù))具有相同的函數(shù)體(在 ECMAScript 5 規(guī)范中內(nèi)置的call屬性)。當(dāng)目標(biāo)...

    coordinate35 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<