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); // 错误
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值