JavaScript抽象在参数中传递console.log

时间:2014-02-20 12:21:28

标签: javascript html dom

你好StackOverflow高手!

我目前正在使用Eloquent JavaScript书来自学JavaScript!

目前我正在抽象一个for循环动作,这是代码如下......

function forEach(array, action) {
    for (var i = 0; i < array.length; i++) {
        action(array[i]);
    }
}

然后用...调用forEach。

forEach(["Wampeter", "Foma", "Granfalloon"], print);

然而,不是打印我想将它记录到控制台,因此我将打印更改为console.log但是我会因非法调用而得到错误。

任何人都知道为什么会发生这种情况以及如何实现这一目标?

干杯!

1 个答案:

答案 0 :(得分:2)

您的问题将适用于需要正确设置context (this)的任何功能。 要解决此问题,您可以绑定'this':

forEach(['foo', 'bar'], console.log.bind(console));

希望这有帮助!