JS中apply与call的区别
function cls1()
{
this.a='123';
}
function cls2()
{
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);
}
var o1=new cls1();
var o2=new cls2();
//o1.fun1.call(o2);
//o1.fun1.apply(o2);
//o1.fun2.apply(o2, 'test');// 错误
o1.fun2.apply(o2, ['test']);// 正确
o1.fun2.call(o2, 'test');// 正确 与上边一样
var array = new Array('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); // 错误