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