<分区>
我正在尝试实现原生的 forEach 方法。这是我的代码:
Array.prototype.myEach = function(cb) {
for(let i=0; i<this.length; i++) {
cb(this[i], i)
}
}
如果我声明 let a = []
(某物)然后运行 [].myEach
那么它就可以工作了。
let a = [1,2,3,4,5]; // or even []
[1,2,3,4,5].myEach(function(val, i){
console.log(val); //works
});
但如果我不在顶部声明数组,它甚至无法识别原型(prototype)。
[1,2,3,4,5].myEach(function(val, i){ //fails
console.log(val);
});
问题:
如果我删除 let a = [1,2,3,4,5],执行 [1,2,3,4].forEach 会失败。
我不明白为什么。