JS中apply与call的区别

functioncls1()

{

this.a='123';

}

functioncls2()

{

this.a='456';

}

cls1.prototype.fun1=function()

{

alert(this.a);

}

cls1.prototype.fun2=function(s){

alert("this.a:"+this.a+"s:"+s);

}

cls1.prototype.fun3=function(p1,p2,p3)

{

alert("this.a:"+this.a+"p1:"+p1+"p2:"+p2+"p3:"+p3);

}

varo1=newcls1();

varo2=newcls2();

//o1.fun1.call(o2);

//o1.fun1.apply(o2);

//o1.fun2.apply(o2,'test');//错误

o1.fun2.apply(o2,['test']);//正确

o1.fun2.call(o2,'test');//正确与上边一样

vararray=newArray('a','b','c');

o1.fun3.apply(o2,array);//正确

//o1.fun3.apply(o2,'a','b','c')//错误

o1.fun3.call(o2,'a','b','c');//正确

//o1.fun3.clall(o2,array);//错误

相关推荐