呼叫和应用有什么区别?使用call和apply去调用一个函数?var func = function() {
alert('hello!');};func.apply();VSfunc.call();上述两种方法之间是否存在性能差异?什么时候最好用call过关apply反之亦然?
4 回答
慕斯709654
TA贡献1840条经验 获得超5个赞
基本上,他们在处理函数参数的方式上有所不同。
Apply()方法与调用()完全相同,但Apply()需要一个数组作为第二个参数。数组表示目标方法的参数。“
// assuming you have ffunction f(message) { ... }f.call(receiver, "test");f.apply(receiver, ["test"]);
蝴蝶刀刀
TA贡献1801条经验 获得超8个赞
apply
arguments
call
f.call(thisObject, a, b, c); // Fixed number of argumentsf.apply(thisObject, arguments); // Forward this function's argumentsvar args = [];while (...) { args.push(some_value());}f.apply(thisObject, args); // Unknown number of arguments
call
apply
apply
f.apply(thisObject, [a, b, c])
f.call(thisObject, a, b, c)
call
apply
添加回答
举报
0/150
提交
取消