call:call 是函數(shù)的正常調(diào)用方式,并指定上下文 this爪瓜。
apply:apply 的作用和 call 一樣蹬跃,只是在調(diào)用的時候,傳參數(shù)的方式不同铆铆。區(qū)別是 apply 接受的是數(shù)組參數(shù)蝶缀,call 接受的是連續(xù)參數(shù)。如下代碼:
function add(a,b){
return a+b;
}
add.call(add, 5, 3); //8
add.apply(add, [5, 3]); //8
bind:bind 接受的參數(shù)跟 call 一致薄货,只是 bind 不會立即調(diào)用翁都,它會生成一個新的函數(shù),你想什么時候調(diào)就什么時候調(diào)谅猾。如下代碼:
function add(a, b){
return a+b;
}
var foo1 = add.bind(add, 5,3);
foo1(); //8
var foo1 = add.bind(add, 5,3);
foo1(); //8