在函数表达式上使用 .map 时难以理解参数内容
Struggling to Understand the Parameter Content when using .map on Function Expressions
所以我在看函数表达式。
这是我正在玩的代码:
var modifiedNames = [ "Thomas Meeks",
"Gregg Pollack",
"Christine Wong",
"Dan McGaw" ];
modifiedNames.map(function(cheese) {
alert("Yo, " + cheese + "!");
});
它工作正常,但我无法理解它的一部分。我知道 .map
在做什么,但参数真的让我很困惑。 参数是如何收集数组信息的?我称它为奶酪,因为这只是我的测试词。
我已经阅读了一些解释,但我只是没有领会,希望这里有人可以稍微简化一下解释。谢谢。
您将函数传递给 .map()
,然后它会运行一个循环,并在每次迭代时调用该函数,将当前项目传递给它。
可以这样想:
for (var i = 0; i < array.length; i++) {
callback(array[i]);
}
这里array
是你调用.map()
的数组,callback
是你传入的函数
现在这不那么神秘了。它只是在循环中调用你的函数。
当然,.map()
比这做更多的工作并传递更多的参数,但这显示了参数是如何填充的。
更完整的地图实现如下所示:
Array.prototype.myMap = function(callback, thisArg) {
var result = new Array(this.length);
for (var i = 0; i < this.length; i++) {
if (i in this) {
result[i] = callback.call(thisArg, this[i], i, this);
}
}
return result;
};
您是想问这在内部究竟是如何工作的?
.map 在幕后使用 for 循环并将数组中的每个元素传递给奶酪指针。所以奶酪会 "Thomas Meeks" 并且它会提醒它然后继续。
How is the parameter collecting the array's information? I called it
cheese as that's just my go-to test word.
cheese
是命名函数参数,它定义了函数范围内传递的参数标识符。与
相同
function fn(cheese) {
console.log(cheese)
}
fn("and crackers");
或使用.map()
["and crackers"].map(fn);
另见
所以我在看函数表达式。
这是我正在玩的代码:
var modifiedNames = [ "Thomas Meeks",
"Gregg Pollack",
"Christine Wong",
"Dan McGaw" ];
modifiedNames.map(function(cheese) {
alert("Yo, " + cheese + "!");
});
它工作正常,但我无法理解它的一部分。我知道 .map
在做什么,但参数真的让我很困惑。 参数是如何收集数组信息的?我称它为奶酪,因为这只是我的测试词。
我已经阅读了一些解释,但我只是没有领会,希望这里有人可以稍微简化一下解释。谢谢。
您将函数传递给 .map()
,然后它会运行一个循环,并在每次迭代时调用该函数,将当前项目传递给它。
可以这样想:
for (var i = 0; i < array.length; i++) {
callback(array[i]);
}
这里array
是你调用.map()
的数组,callback
是你传入的函数
现在这不那么神秘了。它只是在循环中调用你的函数。
当然,.map()
比这做更多的工作并传递更多的参数,但这显示了参数是如何填充的。
更完整的地图实现如下所示:
Array.prototype.myMap = function(callback, thisArg) {
var result = new Array(this.length);
for (var i = 0; i < this.length; i++) {
if (i in this) {
result[i] = callback.call(thisArg, this[i], i, this);
}
}
return result;
};
您是想问这在内部究竟是如何工作的?
.map 在幕后使用 for 循环并将数组中的每个元素传递给奶酪指针。所以奶酪会 "Thomas Meeks" 并且它会提醒它然后继续。
How is the parameter collecting the array's information? I called it cheese as that's just my go-to test word.
cheese
是命名函数参数,它定义了函数范围内传递的参数标识符。与
function fn(cheese) {
console.log(cheese)
}
fn("and crackers");
或使用.map()
["and crackers"].map(fn);
另见