无法理解javascript语法

时间:2017-06-21 06:53:35

标签: javascript

我正在查看react-jsonschema-form的代码。我遇到了以下几行,我无法理解。

var formData = (0, _utils.getDefaultFormState)(schema, props.formData, definitions);

第一个括号内的内容如何传递参数(schema,props.formData等)的函数?

2 个答案:

答案 0 :(得分:1)

在该上下文中,第一个括号对是一个语句序列,其值是最后一个表达式的值。然后:

(0,_utils.getDefaultFormState)

返回函数objet _utils.getDefaultFormState,然后使用以下参数调用它。

答案 1 :(得分:1)

我想这个问题的答案是,在第一个表达式(0,_utils.getDefaultFormState)中,comma ,运算符求值到最后一个参数并返回它。

因此,逗号运算符从左到右操作它的操作数,并返回表达式中最右边的 last 操作数。

但就使用函数及其返回值而言,这是不同的。

// sample from MDN.
function myFunc() {
  var x = 0;

  return (x += 1, x); // the same as return ++x;
}

正如我在评论中提到的那样:

第一个括号是自执行函数,它返回它作为_utils对象函数的值,它接受3个或更多个参数。