apply和call方法

js中的call函数和apply函数

a.call(b)

 a.call(b,a1,a2)
  把a对象的方法应用到b对象上。b对象也就拥有了a对象所有的内容。b继承a对象。一般用于对象的继承。
  例:function class1()
{
   this.name = function(){
    alert("class1的方法name()");
   }
}
function class2()
{
class1.call(this);//要想实现class2继承class1 this就是当前对象class2。

}

a.apply(b)

a.apply(obj,args)
obj:这个对象代替a对象
args:这个是数组,它将作为参数传给a

call()和apply()的区别

注意到,call()与apply()的区别:功能一样。第二个参数形式不一样。call传递多个参数,是任意形式。apply第二个参数必须是数组形式。

用代码来理解它们区别最好:

a.call(b,2,3); ==> a.apply(b,[2,3]);//数组形式传入