Почему мой код работает в javascript-консоли codeacademy, а не в chrome?

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

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

Почему этот код выполняется так, как я хочу, в консоли javascript codeacademy, но не в chrome? В хроме он продолжает говорить о недопустимом вызове, поэтому я не уверен, что я делаю что-то неправильно или нет. Любая помощь, пожалуйста?


person joyfulchute    schedule 18.07.2015    source источник
comment
Спрашивая о сообщениях об ошибках, всегда вставляйте точную формулировку ошибки; там могут быть детали, которые ничего не значат для вас, но кто-то может объяснить проблему.   -  person IMSoP    schedule 19.07.2015


Ответы (1)


console.log ожидает, что this будет привязан к console, когда вы его вызываете. (Когда вы вызываете его внутри forEach, вы больше не обращаетесь к нему как к методу console, поэтому его внутренний this будет привязан к глобальному объекту.)

Используйте console.log.bind(console) вместо console.log.

person doldt    schedule 18.07.2015