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

資訊專欄INFORMATION COLUMN

簡(jiǎn)簡(jiǎn)單單認(rèn)識(shí)call,apply,bind方法

MSchumi / 2337人閱讀

摘要:里面的方法利用里面的函數(shù)輸出方法輸出代表的是對(duì)象,為全局變量,全局變量實(shí)際上是對(duì)象的一個(gè)屬性。而以方法調(diào)用時(shí),值為我們傳進(jìn)去的對(duì)象。方法方法實(shí)際上是與方法用法相同,只不過(guò)方法傳進(jìn)去的參數(shù)是以數(shù)組形式例如其他與并沒(méi)有區(qū)別。

js里面的call apply bind 方法 利用js里面的function函數(shù)
    function example(a,b){
        console.log(a+b)
    }
    example(1,2)

    輸出 3
call方法
    var a = 1;
    function example(){
        console.log(this.a)
    }
    輸出 1

this代表的是window對(duì)象,a為全局變量,全局變量實(shí)際上是window對(duì)象的一個(gè)屬性。

    var a = 1;
    var obj = {
        a=9;
    };
    function example(b){
        return this.a+b
    }
    console.log(example.call(obj,2))

輸出11,而不是3,實(shí)際上,call是改變函數(shù)里面的this對(duì)象的,如果以example()這種普通方式調(diào)用函數(shù)的話,this值為我們?cè)O(shè)置的全局變量。而以call方法調(diào)用時(shí),this值為我們傳進(jìn)去的obj對(duì)象。

apply方法

apply方法實(shí)際上是與call方法用法相同,只不過(guò)apply方法傳進(jìn)去的參數(shù)是以數(shù)組形式例如

example.apply(obj,[2])

其他與call并沒(méi)有區(qū)別。

bind方法

我們用上面的方法使用bind方法

    var a = 1;
    var obj = {
        a=9;
    };
    function example(b){
        return this.a+b
    }
    console.log(example.bind(obj,2))

我們會(huì)發(fā)現(xiàn)打印出來(lái)的是一個(gè)函數(shù)

? example(b){
            return this.a+b
        }
}

我們?cè)侔褏?shù)去掉打印一下

console.log(example.bind(obj))
? example(b){
            return this.a+b
        }
}

我們會(huì)發(fā)現(xiàn)并沒(méi)有變化

實(shí)際上bind是將obj對(duì)象與函數(shù)進(jìn)行綁定,如果我們需要使用,我們需要將函數(shù)重新創(chuàng)建一個(gè)變量,然后調(diào)用新的變量就可以了,

var newexample = example();
newexample()

如果我們?cè)龠M(jìn)行打印

console.log(newexample(2))

我們會(huì)得到11

好了,call apply bind 方法就介紹到這里了,你記住了嗎?

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

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

相關(guān)文章

  • 日積跬步,apply/call/bind 自我實(shí)現(xiàn)

    摘要:日常編碼中被開(kāi)發(fā)者用來(lái)實(shí)現(xiàn)對(duì)象冒充,也即顯示綁定。面試題源碼實(shí)現(xiàn),事實(shí)上是對(duì)基礎(chǔ)知識(shí)的一個(gè)綜合考核。原型鏈終端指向,不會(huì)有構(gòu)造函數(shù),也不會(huì)有等屬性,這些屬性來(lái)自。 call/apply/bind 日常編碼中被開(kāi)發(fā)者用來(lái)實(shí)現(xiàn) 對(duì)象冒充,也即 顯示綁定 this。 面試題:call/apply/bind源碼實(shí)現(xiàn),事實(shí)上是對(duì) JavaScript 基礎(chǔ)知識(shí)的一個(gè)綜合考核。 相關(guān)知識(shí)點(diǎn): 作...

    denson 評(píng)論0 收藏0
  • 關(guān)于javascript中的bind、call、apply等函數(shù)的用法

    摘要:其實(shí)它們都很簡(jiǎn)單,但是在處理一些與相關(guān)的函數(shù)的時(shí)候,用來(lái)改變函數(shù)中的指向,卻是必不可少的工具,所以必須掌握好它們的用法。 關(guān)于javascript中的bind、call、apply等函數(shù)的用法 我GitHub上的菜鳥倉(cāng)庫(kù)地址: 點(diǎn)擊跳轉(zhuǎn)查看其他相關(guān)文章 文章在我的博客上的地址: 點(diǎn)擊跳轉(zhuǎn) ? ? ? ? 前面的文章已經(jīng)說(shuō)到this的指向了,那么這篇文章就要說(shuō)一說(shuō)和this相關(guān)的三個(gè)...

    lordharrd 評(píng)論0 收藏0
  • 深入call apply bind

    摘要:眾所周知,這三個(gè)函數(shù)都是改變執(zhí)行上下文的,那么我們來(lái)捋一捋,這些函數(shù)內(nèi)部到底做了什么。 前言 稍微翻了一下call,apply, bind 的各種論壇上的文章, 發(fā)現(xiàn)講的都太淺了,大部分都只講了個(gè)用法, 對(duì)于實(shí)現(xiàn)的原理卻都沒(méi)有提,因此,在這里,我寫下這篇文章, 希望能讓大家認(rèn)識(shí)到原理所在。 眾所周知, 這三個(gè)函數(shù)都是改變執(zhí)行上下文的 , 那么我們來(lái)捋一捋,這些函數(shù)內(nèi)部到底做了什么。 c...

    Alex 評(píng)論0 收藏0
  • call() 與 apply() 和 bind()

    摘要:但是當(dāng)構(gòu)造函數(shù)顯示返回一個(gè)對(duì)象時(shí)就會(huì)將這個(gè)對(duì)象賦值給變量,的使用則無(wú)效。將參數(shù)全都傳入,它會(huì)把參數(shù)作為數(shù)組傳入。 首先了解this 如果想用好這幾個(gè)方法,需要先了解this被調(diào)用方式不同而導(dǎo)致值不同的各種情況,然后就會(huì)認(rèn)識(shí)到使用這幾個(gè)方法的原因在哪里。(可以指定this的值)全局上下文中this指向全局對(duì)象,函數(shù)上下文this取決于被調(diào)用的方式 例: 在非嚴(yán)格模式下,全局調(diào)用函數(shù)thi...

    DTeam 評(píng)論0 收藏0
  • 面試官問(wèn):JS的this指向

    摘要:之前寫過(guò)一篇文章面試官問(wèn)能否模擬實(shí)現(xiàn)的和方法就是利用對(duì)象上的函數(shù)指向這個(gè)對(duì)象,來(lái)模擬實(shí)現(xiàn)和的。雖然實(shí)際使用時(shí)不會(huì)顯示返回,但面試官會(huì)問(wèn)到。非嚴(yán)格模式下,和,指向全局對(duì)象 前言 面試官出很多考題,基本都會(huì)變著方式來(lái)考察this指向,看候選人對(duì)JS基礎(chǔ)知識(shí)是否扎實(shí)。讀者可以先拉到底部看總結(jié),再谷歌(或各技術(shù)平臺(tái))搜索幾篇類似文章,看筆者寫的文章和別人有什么不同(歡迎在評(píng)論區(qū)評(píng)論不同之處),...

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

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

0條評(píng)論

MSchumi

|高級(jí)講師

TA的文章

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