我正在学习JavaScript抽象。我想将一个函数作为参数传递给另一个函数。当我传入console.log时,它返回一个TypeError:Illegal invocation
index
我希望这会记录传递的数组中的所有元素。
答案 0 :(得分:2)
问题在于console.log
没有使用正确的上下文(this
)调用。
更改
forEvery(["test1","test2","test3"],console.log);
到
forEvery(["test1","test2","test3"], Function.prototype.bind(console.log, console));
请注意,使用非本机函数会更简单:您可以使用
forEvery(["test1","test2","test3"], console.log.bind(console));
也适用于大多数浏览器。
但IE9(可能还有其他一些版本)存在“限制”。 See related question