确切的参数是什么?

时间:2018-10-06 13:18:44

标签: javascript

一本书中的示例(不是完整的示例,如果需要的话,我会提供更多)。

function CSVReader(separators) {
  this.separators = separators || [","];
  this.regexp =
    new RegExp(this.separators.map(function(sep) {
      return "\\" + sep[0];
    }).join("|"));
}

函数中的sep参数是什么?

当我看不到它的任何地方时,如何获得它的价值?

2 个答案:

答案 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)

sepmap遍历数组时提供的单个数组元素。

了解更多:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map