Учитывая следующий код:thisArg из array.forEach не ссылается, как ожидалось
const theArray = ['Audi','Volvo','Mercedes'];
const myObj = {a: 7};
theArray.forEach((value, index, array) => {
console.log(index + ' : ' + value);
console.log(array === theArray);
console.log(this.a);
}, myObj);
Я получаю следующий вывод:
0 : Audi
true
undefined
1 : Volvo
true
undefined
2 : Mercedes
true
undefined
Где я не понимаю, почему this
не ссылается myObj и возвращает undefined вместо 7. Пока this typeof Object
возвращает true, я не знаю, к какому объекту он ссылается. Я просто знаю, что this
возвращает пустой объект (то есть {})
Node.js интерпретатор версия v6.2.1
версия V8-двигателя является 5.0.71.52
Выражение функции стрелки имеет более короткий синтаксис по сравнению с функциональными выражениями и лексический связывает это значение (не связывает свой собственный, это аргументы, супер, или new.target) , Функции стрелок всегда анонимны. source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions –
Он работает, если вы удаляете функцию стрелки https://jsfiddle.net/t9sbfv5a/ – brk
@ НинаШолц, Каково решение? – Rayon