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

資訊專欄INFORMATION COLUMN

JavaScript 修改this指針

ephererid / 1593人閱讀

摘要:題目封裝函數(shù),使的指向指定的對象。接收兩個參數(shù),第一個是綁定的值,第二個是一個參數(shù)數(shù)組。而呢,它的第一個參數(shù)也是綁定給的值,但是后面接受的是不定參數(shù),而不再是一個數(shù)組,也就是說你可以像平時給函數(shù)傳參那樣把這些參數(shù)一個一個傳遞。

題目

封裝函數(shù) f,使 f 的 this 指向指定的對象 。

輸入例子
bindThis(function(a, b) {
    return this.test + a + b;
}, {test: 1})(2, 3);
輸出例子
6
分析

該題目的要求是:封裝一個函數(shù)bindThis,該函數(shù)有兩個參數(shù),第一個參數(shù)是一個內(nèi)部有使用this指針的函數(shù)f,第二個參數(shù)是一個對象obj,執(zhí)行bindThis之后,返回一個函數(shù),該函數(shù)里面的this就被綁定到obj上面。

function f(a, b) {
    return this.test + a + b;
}

function bindThis(f, obj) {
    //你實現(xiàn)的部分
}

//執(zhí)行函數(shù)
var a = bindThis(f,{test:1});
a(2,3);
解決方法

javascript的三劍客:bind apply call

1、解決方法一:使用bind()

function f(a, b) {
    return this.test + a + b;
}

function bindThis(f, obj) {
    //你實現(xiàn)的部分
    return f.bind(obj);
}

//執(zhí)行函數(shù)
var a = bindThis(f,{test:1});
console.log(a(2,3));
console.log(f(2,3));
6
NaN

2、解決方法二:使用apply()

function bindThis(f, obj) {
    //你實現(xiàn)的部分
    return function () {
        return f.apply(obj, arguments);
    };
}

3、解決方法三:使用call()

function bindThis(f, obj) {
    //你實現(xiàn)的部分
    return function (a,b) {
        return f.call(obj, a,b);
    };
}

call和apply基本的區(qū)別:參數(shù)不同。apply() 接收兩個參數(shù),第一個是綁定 this 的值,第二個是一個參數(shù)數(shù)組。而 call() 呢,它的第一個參數(shù)也是綁定給 this 的值,但是后面接受的是不定參數(shù),而不再是一個數(shù)組,也就是說你可以像平時給函數(shù)傳參那樣把這些參數(shù)一個一個傳遞。

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

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

相關(guān)文章

  • 寫給Java開發(fā)者看的JavaScript對象機制

    摘要:如果你已經(jīng)對機制已有了解,但是由于兩者對象機制的巨大本質(zhì)差異,對它和構(gòu)造函數(shù),實例對象的關(guān)系仍有疑惑,本文或許可以解答你的問題。所有的原型對象都會自動獲得一個屬性,這個屬性的值是指向原型所在的構(gòu)造函數(shù)的指針。 幫助面向?qū)ο箝_發(fā)者理解關(guān)于JavaScript對象機制 本文是以一個熟悉OO語言的開發(fā)者視角,來解釋JavaScript中的對象。 對于不了解JavaScript 語言,尤其是習(xí)...

    Charles 評論0 收藏0
  • javascript技術(shù)難點(三)之this、new、apply和call詳解

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

    ghnor 評論0 收藏0
  • JS高級入門教程

    摘要:解析首先簡稱是由歐洲計算機制造商協(xié)會制定的標準化腳本程序設(shè)計語言。級在年月份成為的提議,由核心與兩個模塊組成。通過引入統(tǒng)一方式載入和保存文檔和文檔驗證方法對進行進一步擴展。其中表示的標記位正好是低三位都是。但提案被拒絕了。 JS高級入門教程 目錄 本文章定位及介紹 JavaScript與ECMAScript的關(guān)系 DOM的本質(zhì)及DOM級介紹 JS代碼特性 基本類型與引用類型 JS的垃...

    zsy888 評論0 收藏0
  • javascript this指針詳解

    摘要:但是有一個總的原則,那就是指的是,調(diào)用函數(shù)的那個對象使用主要分四種情況,討論下指針的用法和注意事項一純粹的函數(shù)調(diào)用這是函數(shù)的最通常用法,屬于全局性調(diào)用,因此就代表全局對象。 this是Javascript語言的一個關(guān)鍵字它代表函數(shù)運行時,自動生成的一個內(nèi)部對象,只能在函數(shù)內(nèi)部使用,隨著函數(shù)使用場合的不同,this的值會發(fā)生變化。但是有一個總的原則,那就是this指的是,調(diào)用函數(shù)的那個對...

    graf 評論0 收藏0
  • javascript this指針詳解

    摘要:但是有一個總的原則,那就是指的是,調(diào)用函數(shù)的那個對象使用主要分四種情況,討論下指針的用法和注意事項一純粹的函數(shù)調(diào)用這是函數(shù)的最通常用法,屬于全局性調(diào)用,因此就代表全局對象。 this是Javascript語言的一個關(guān)鍵字它代表函數(shù)運行時,自動生成的一個內(nèi)部對象,只能在函數(shù)內(nèi)部使用,隨著函數(shù)使用場合的不同,this的值會發(fā)生變化。但是有一個總的原則,那就是this指的是,調(diào)用函數(shù)的那個對...

    AlphaWallet 評論0 收藏0

發(fā)表評論

0條評論

ephererid

|高級講師

TA的文章

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