По какой-то причине метод getTwo()
внутри PollClass
не вернет 2
, но undefined
. Если я поставлю оператор return
за пределами цикла .forEach()
, значение возвращается.Методы класса ES6, не возвращающие ничего внутри петли forEach
class Poll {
constructor(name) {
this.name = name;
this.nums = [1, 2, 3];
}
getTwo() {
this.nums.forEach(num => {
if (num === 2) return num;
})
}
}
const newPoll = new Poll('random name');
console.log(newPoll.getTwo()); // returns undefined, not 2
Это проблема с закрытием, ES 6 или целая другая проблема?
Пока не ясно, что вы хотите, чтобы вернуться, если 'this.nums' не имеет 2, или если он имеет больше, чем один. В любом случае вам лучше использовать '.some' вместо' forEach'. – raina77ow
'forEach' ничего не вернет. Это не 'for' loop – Redu
*« Это проблема с закрытием, ES 6 или целая другая проблема? »* Ничего. Внутренние функции не могут заставить внешнюю функцию возвращать что-то. –