2018-4-22 seo達(dá)人
如果您想訂閱本博客內(nèi)容,每天自動(dòng)發(fā)到您的郵箱中, 請(qǐng)點(diǎn)這里
在 JavaScript 中
如果我們有一個(gè)對(duì)象
二者的作用完全一樣,知識(shí)接受 參數(shù) 的方式不太一樣。
在 Javascript 中,多次
三種方法的作用
call
、apply
和 bind
是 Function 對(duì)象自帶的三個(gè)方法,都是為了改變函數(shù)體內(nèi)部 this
的指向。
call
、apply
和 bind
三者第一個(gè)參數(shù)都是 this
要指向的對(duì)象,也就是想指定的上下文。
call
、apply
和 bind
三者都可以利用后續(xù)參數(shù)傳參。
bind
是返回對(duì)應(yīng) 函數(shù),便于稍后調(diào)用;apply
、call
則是立即調(diào)用 。
舉個(gè)栗子
banana= {color : 'yellow'}
,我們不想重新定義 say 方法,那么我們可以通過(guò) call
或 apply
用 apple 的 say 方法:
call
和 apply
的區(qū)別
call
是把參數(shù)按順序傳遞進(jìn)去,而 apply
則是把參數(shù)放在 數(shù)組 里面。
類(偽)數(shù)組使用數(shù)組方法
驗(yàn)證一個(gè)對(duì)象的類型可以用
bind()
方法
bind()
方法會(huì)創(chuàng)建一個(gè) 新函數(shù),稱為綁定函數(shù),當(dāng)調(diào)用這個(gè)綁定函數(shù)時(shí),綁定函數(shù)會(huì)以創(chuàng)建它時(shí)傳入 bind()
方法的第一個(gè)參數(shù) 作為 this,傳入 bind()
方法的 第二個(gè)以及以后的參數(shù)加上綁定函數(shù)運(yùn)行時(shí)本身的參數(shù)按照順序作為原函數(shù)的參數(shù)來(lái)調(diào)用原函數(shù)。
注意
:bind()
方法創(chuàng)建的函數(shù)不會(huì)立即調(diào)用,在下面的例子中,最后 func()
才調(diào)用了函數(shù),這是它與 call
和apply
的區(qū)別。
bind()
是無(wú)效的。更深層次的原因, bind()
的實(shí)現(xiàn),相當(dāng)于使用函數(shù)在內(nèi)部包了一個(gè) call / apply
,第二次 bind()
相當(dāng)于再包住第一次 bind()
,故第二次以后的 bind
是無(wú)法生效的。
藍(lán)藍(lán)設(shè)計(jì)的小編 http://bouu.cn