Javascript 变量如何命名为';记录';传入函数?

Javascript 变量如何命名为';记录';传入函数?,javascript,reactjs,Javascript,Reactjs,我正在尝试构建一个pivot表&当时使用的是一个开源代码,并对这个函数进行了摸索。 记录[]如何传递到此函数?似乎没有传球或任何宣布。怎么能直接来 整个代码可以在这里找到 我试着在整个模块中查找record[]变量,因为它只能直接使用。找不到分配值的位置 sum(formatter = usFmt) { return function([attr]) { return function() { return { sum: 0,

我正在尝试构建一个pivot表&当时使用的是一个开源代码,并对这个函数进行了摸索。 记录[]如何传递到此函数?似乎没有传球或任何宣布。怎么能直接来

整个代码可以在这里找到

我试着在整个模块中查找record[]变量,因为它只能直接使用。找不到分配值的位置

sum(formatter = usFmt) {
    return function([attr]) {
      return function() {
        return {
          sum: 0,
          push(record) {
            if (!isNaN(parseFloat(record[attr]))) {
              this.sum += parseFloat(record[attr]+10000);
            }
          },
          value() {
            return this.sum;
          },
          format: formatter,
          numInputs: typeof attr !== 'undefined' ? 0 : 1,
        };
      };
    };
  },
我想使用和修改记录[]中提供的数据
如何使用它?

在您的代码示例中,
记录
是函数
推送
返回的对象的一个参数,该对象是从匿名函数返回的,该匿名函数是从您的代码示例中的函数
sum
返回的,
record
是函数
push
在从函数
sum

返回的匿名函数返回的匿名函数返回的对象上的参数。您可以将此代码分解为:

const func = sum(formatter = usFmt) // returns anonymus function([attr]) {}
const func2 = func([attr]) // returns function() {}
const myLiteral = func2() // returns object literal
你的文字如下所示

myLiteral =  {
 sum: 0,
 push(record) {
   if (!isNaN(parseFloat(record[attr]))) {
     this.sum += parseFloat(record[attr]+10000);
   }
 },
 value() {
   return this.sum;
 },
 format: formatter,
 numInputs: typeof attr !== 'undefined' ? 0 : 1,
}
在您的
myLiteral
上,您可以

myLiteral.push(myRecord);

您可以将此代码分解为:

const func = sum(formatter = usFmt) // returns anonymus function([attr]) {}
const func2 = func([attr]) // returns function() {}
const myLiteral = func2() // returns object literal
你的文字如下所示

myLiteral =  {
 sum: 0,
 push(record) {
   if (!isNaN(parseFloat(record[attr]))) {
     this.sum += parseFloat(record[attr]+10000);
   }
 },
 value() {
   return this.sum;
 },
 format: formatter,
 numInputs: typeof attr !== 'undefined' ? 0 : 1,
}
在您的
myLiteral
上,您可以

myLiteral.push(myRecord);

在这种情况下,最后一个问题是[attr]是从哪里来的?我来自C++背景,在调用函数时传递参数。在这里,以前似乎没有发生过[attr]。它不知从何而来。
attr
是从
sum
返回的外部匿名函数的(解构)参数。语法可能看起来不熟悉。声明的函数([attr]){…}
接受一个数组参数,并将数组中的第一个元素分配给参数
attr
。在这种情况下,最后一个问题是[attr]从何而来?我来自C++背景,在调用函数时传递参数。在这里,以前似乎没有发生过[attr]。它不知从何而来。
attr
是从
sum
返回的外部匿名函数的(解构)参数。语法可能看起来不熟悉。声明的函数([attr]){…}接受单个数组参数,并将数组中的第一个元素指定给参数
attr
。很好。现在看起来更清楚了。最后一个问题,他们是如何在内部使用[attr]的?他们从来没有在sum()函数中传递它。很好的分歧。现在看起来更清楚了。最后一个问题,他们是如何在内部使用[attr]的?他们从未在sum()函数中传递它。