ECMAScript 中的 apply() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。
下面我们编写一个函数 myapply 来模拟 apply 方法,以此加深对 apply 的理解。
相关:第 52 期(W3C 标准-ECMAScript-上下文环境):模拟call方法
Function.prototype.myApply = function(context, arr) {
context = context || window;
context.fn = this;
var result;
if (!arr) {
result = context.fn();
} else {
var args = [];
for (var i = 0; i < arr.length; i++) {
args.push('arr[' + i + ']');
}
result = eval('context.fn(' + args + ')');
}
delete context.fn;
return result;
}
ECMAScript 中的
apply()方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。下面我们编写一个函数
myapply来模拟apply方法,以此加深对apply的理解。