bind、apply、call
bind、apply、call
- apply、call、bind 三者都是用來改變函數的 this 的指向對象;
- apply、call、bind 三者第一個參數都是 this 要指向的對象,也就是想指定的上下文;
- apply、call、bind 三者都可以利用後續參數傳參;
bind 是返回對應函數,便於稍後調用;apply 、call 則是立即調用。
bind 運算符 ::
ES 7 新語法
::
為 bind 的短語法,使用範例如下:把函數綁定到變數上
var log = console.log.bind(console);
用法:
log('one', '2', 3, [4], {5: 5});
輸出:
one 2 3 [4] Object {5: 5}
為什麼要綁定在變數上?
這能讓你在程式運作的時候動態決定要使用哪一種 function。
例如:你可以在程式運行時決定使用哪一個自定義記錄器:
留言
張貼留言