Javascript 确切的参数是什么?

Javascript 确切的参数是什么?,javascript,Javascript,书中的例子(不是整本,如果需要,我会提供更多) 函数中的sep参数是什么 当我看不到它在任何地方声明时,如何获取它的值?sep是map在数组上迭代时提供的单个数组元素 了解更多信息: …当我在任何地方都看不到它的时候 它在回调的参数列表中声明 function CSVReader(separators){ this.separators = separators || [","]; this.regexp = new RegExp(this.separators.map(function

书中的例子(不是整本,如果需要,我会提供更多)

函数中的
sep
参数是什么


当我看不到它在任何地方声明时,如何获取它的值?

sep
map
在数组上迭代时提供的单个数组元素

了解更多信息:

…当我在任何地方都看不到它的时候

它在回调的参数列表中声明

function CSVReader(separators){
this.separators = separators || [","];
this.regexp =
    new RegExp(this.separators.map(function(sep){
// -----------------------------------------^^^^ ---------------------- here
                                                return "\\"+sep[0];
                                            }).join("|"));
}
函数将为
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));
    }
}
函数映射(回调){
//这里,`this`是调用的数组`map`
var结果=[];
对于(变量i=0,len=this.length;i
(为了清晰起见,我遗漏了一个主要细节,即
forEach
thisArg
和使用特定的
this
值调用
callback
。)

回调函数接收三个参数,但示例中的参数仅使用(
sep
)中的一个

另请参见关于forEach的



FWIW:是JavaScript信息(以及HTML和CSS)的良好资源。

显然,
分隔符
应该是一个分隔字符数组(可能用于每个CSV行的元素),因此,
.map()
调用会迭代其中的每一个,这就是
sep
的来源。
sep
中的每个元素。分隔符
并使用Ok,thanx,再问一个问题进行迭代。如果.map()一个接一个地从数组中获取元素,并在这些元素上执行函数,那么为什么要使用sep[0]?这就好像一个数组是从一个数组传递给sep的?@Yozex-数组中的条目是字符串。显然,代码的作者只想允许使用一个字符分隔符,但不想通过验证来强制使用
sep[0]
sep
时,“
”、“
”,但
sep[0]
sep
“xx”
仅为
“x”
。更好的实现是检查
this.separator
长度大于1的任何条目并抛出错误,而不是忽略分隔符中的后续字符。
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));
    }
}