我想擴展Array.prototype以包含一個正方形函數。我有這樣的:擴展Array.prototype返回undefined
Array.prototype.square = function(){
return this.forEach(function(el){
return (el * el)
});
}
當我打電話陣列上這個功能,說arr = [2, 2, 2]
則返回undefined。如果我在那裏添加一個console.log,我可以看到forEach函數的回調函數正確執行 - 它記錄了三次。爲什麼這個函數返回undefined而不是[4,4,4]的新數組?
'.forEach()'函數不返回值。 – Pointy
注意:如果可用,使用Object.defineProperty(Array.prototype,'square',{value:function(){...}})'來防止函數成爲_every_數組實例的枚舉屬性。 – Alnitak