一本书中的示例(不是完整的示例,如果需要的话,我会提供更多)。
function CSVReader(separators) {
this.separators = separators || [","];
this.regexp =
new RegExp(this.separators.map(function(sep) {
return "\\" + sep[0];
}).join("|"));
}
函数中的sep
参数是什么?
当我看不到它的任何地方时,如何获得它的价值?
答案 0 :(得分:5)
...当我看不到它在任何地方声明时?
它在回调的参数列表中声明...
function CSVReader(separators){
this.separators = separators || [","];
this.regexp =
new RegExp(this.separators.map(function(sep){
// -----------------------------------------^^^^ ---------------------- here
return "\\"+sep[0];
}).join("|"));
}
map
函数将为this.separators
数组中的每个条目调用该回调。在每个调用中,sep
参数接收该条目的值。
map
省略了很多细节,基本上是这样的:
function map(callback) {
// Here, `this` is the array `map` was called on
var result = [];
for (var i = 0, len = this.length; i < len; ++i) {
result.push(callback(this[i], i, this));
}
}
(为清楚起见,我遗漏的主要细节之一是forEach
的{{1}},并使用特定的thisArg
值调用callback
。)
回调函数接收三个参数,但是示例中的一个仅使用(this
)中的一个。
另请参阅this answer关于sep
。
FWIW:MDN是获取JavaScript信息(以及HTML和CSS)的好资源。
答案 1 :(得分:3)
sep
是map
遍历数组时提供的单个数组元素。
了解更多:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map