我的目标是遍历一系列函数并依次调用每个函数。我想避免使用匿名函数,但我很难弄清楚我哪里出错了(使用下划线但是原则应该非常相似)
function wait() {
console.log("wait")
}
function more() {
console.log("more")
}
_.each([wait, more], Function.prototype.call.apply)
不幸的是,这个错误。
Uncaught TypeError: Function.prototype.apply was called on undefined, which is a undefined and not a function
我认为这是因为迭代器func是用三个参数(item,index,array)调用的,而Function.prototype.call.apply在这种情况下需要null作为第二个参数,而不是索引。 / p>
当我尝试这个时,它失败并出现新错误
_.each([wait, more], _.partial(Function.prototype.call.apply, _, null))
Uncaught TypeError: Function.prototype.apply was called on [object Window], which is a object and not a function
最后,这是有效的
unary = function(func) {
return function(a) {
return func.apply(a);
};
};
_.each([wait, more], unary(_.partial(Function.prototype.call)))