提问人:Sheroze Mohammed 提问时间:10/21/2022 最后编辑:Sheroze Mohammed 更新时间:10/21/2022 访问量:49
使用 Array.prototype 的手动映射,我不明白东西在哪里传递 (JS)
Manual Map using Array.prototype, I don't understand where things are being passed around (JS)
问:
我只是对这段代码感到非常困惑。
“callback”如何以某种方式知道我们指的是我们想要操作的数组(第 4 行)? 参数“callback”甚至从未传递过任何内容,那么计算机如何知道从 callback 访问数组的元素呢?(第 9 行)。 我知道“this[i]”指的是元素,但是数组实际传递到此函数的位置?
还有第 17 - 19 行:
既然 s.myMap 已经是一个函数,为什么我们必须指定 'function(item)..' ?
它不应该只是 s.myMap() 吗,因为它是一个函数? 第 17 行的“项目”代表什么?
这真的很令人沮丧,对不起,如果我对这个问题不够清楚。
// The global variable
const s = [23, 65, 98, 5];
Array.prototype.myMap = function(callback) {
const newArray = [];
// Only change code below this line
for(let i = 0; i < this.length; i++){
newArray.push(callback(this[i]));
}
// Only change code above this line
return newArray;
};
const new_s = s.myMap(function(item) {
return item * 2;
});
console.log(new_s);
答: 暂无答案
评论
this[i]
this
prototype
item
17
this[i]
9