Apply vs. Call vs. Bind Examples
apply()
跟 call()
本質上沒有差異,差別是接收的參數方式不太一樣,也不用太糾結要用哪種方式,如果參數本來就是陣列,用apply()
就好
bind()
在低版本的IE不兼容,它和call()
很相似,接收參數有兩部分,第一個參數是作為上下文對象,第二個對象是個列表,可以接受多參數。
1 | // call() |
bind()參數的使用
call()是把第二個以及之後的參數作為func方法參數傳進去1
2
3
4
5
6
7
8function func(a, b, c) {
console.log(a, b, c);
}
var func1 = func.bind(null,'linxin');
func('A', 'B', 'C'); // A B C
func1('A', 'B', 'C'); // linxin A B
func1('B', 'C'); // linxin B C
func.call(null, 'linxin'); // linxin undefined undefined
低版本IE實現bind()方法
1 | if (!Function.prototype.bind) { |
原文
Apply vs. Call vs. Bind in JavaScript