编辑:这个问题是由于我的误解而被问到的。谨慎行事,因为阅读可能会浪费你的时间。仅在第一个参数上调用Javascript调用和应用函数?
我以为call
和apply
会执行一个给定一组参数的函数,但我得到了令人困惑的测试结果。看我的测试代码:
window.z = 0;
(function(){++(window.z)}).call(this, 1, 2, 3)
我期望z
在执行后为3。但是,z是1.
(function(){++(window.z)}).apply(this, [1, 2, 3])
同样在这里。 z == 1;
我试着只需登录输入参数,以及:
var x = function(y){console.log(y);}
x.call(this, 1, 2, 3);
结果?仅记录1个。
我在这里做错了什么?
(在Chrome和Firefox测试使用Firebug。)