call() 和 apply() 的作用和区别
call, apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的,因为属于Function.prototype,所以每个Function对象实例,也就是每个方法都有call, apply属性.既然作为方法的属性,那它们的使用就当然是针对方法的了.这两个方法是容易混淆的,因为它们的作用一样,只是使用方式不同.
相同点:他们的作用都是相同的
不同点:他们的参数不同
call(this,arg1,arg2,arg3);
apply(this,arguments);
apply与call产生的作用是一样的
call, apply作用就是借用别人的方法来调用,就像调用自己的一样.
function add(a,b){
alert(a+b);
}
function sub(a,b){
alert(a-b);
}
add.call(sub,3,1);
add.apply(sub,[3,1]);
他们的不同就在call的参数分别写出来apply的参数是一个数组