javascript - 为什么我的代码可以在 codecademy javascript 控制台中运行,但不能在 chrome 中运行?

标签 javascript google-chrome invocation

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

};
console.log(forEach([1, 2, 3], console.log));

为什么这段代码在 codeacademy javascript 控制台中按照我想要的方式执行,而不是在 chrome 中执行?在 Chrome 中,它一直说非法调用,所以我不确定我是否做错了。请问有什么帮助吗?

最佳答案

console.log 期望在您调用this 时将其绑定(bind)到console(当您在 forEach 内部调用它时,您不再将其作为 console 的方法访问,因此其内部 this 将绑定(bind)到全局对象.)

使用console.log.bind(console)代替console.log

关于javascript - 为什么我的代码可以在 codecademy javascript 控制台中运行,但不能在 chrome 中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31496526/

相关文章:

javascript - 缩短长字符串

javascript - 多次提交后修复 iframe 高度

javascript - 当进程在后台运行时,如何在 Android Chrome 中禁用音频播放?

python - 有没有一种方法可以在不调用 TypeError 的情况下使用错误数量的参数调用 Python 函数?

javascript - D3 : zoom to bounding box with d3-tiles

javascript - 如何生成序列的每个排列的数组(具有重复项)?

javascript - 谷歌浏览器没有执行我所有的 &lt;script&gt;

javascript - 如何使用 chrome.runtime.onMessageExternal 函数回调更新 DOM

javascript - 如何使用 JavaScript 调用此函数?

javascript - 在 javascript 中, ( ... ) 究竟做了什么