TypeError:非法调用console.log

时间:2015-05-20 10:46:36

标签: javascript

我正在学习JavaScript抽象。我想将一个函数作为参数传递给另一个函数。当我传入console.log时,它返回一个TypeError:Illegal invocation

index

我希望这会记录传递的数组中的所有元素。

1 个答案:

答案 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