Я пытаюсь расширить Array.prototype, чтобы включить квадратную функцию. У меня есть это:Расширение Array.prototype возвращает undefined
Array.prototype.square = function(){
return this.forEach(function(el){
return (el * el)
});
}
Когда я вызываю эту функцию на массив, скажем, arr = [2, 2, 2]
он возвращает неопределенное значение. Если я добавлю console.log, я вижу, что функция обратного вызова для функции forEach выполняется правильно - она регистрируется 4 раза три раза. Почему эта функция возвращает undefined вместо нового массива из [4, 4, 4]?
Функция '.forEach()' не возвращает значение. – Pointy
NB: если доступно, используйте 'Object.defineProperty (Array.prototype, 'square', {value: function() {...}})', чтобы ваша функция стала перечислимым свойством экземпляра _every_ массива. – Alnitak