This question already has answers here:
Why does babel rewrite imported function call to (0, fn)(…)?

(3个答案)


3年前关闭。




我正在遍历react-jsonschema-form的代码。我遇到了以下我无法理解的行。
var formData = (0, _utils.getDefaultFormState)(schema, props.formData, definitions);

如何将第一个方括号内的内容传递给参数(模式,props.formData等)的函数?

最佳答案

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

因此,逗号运算符从左到右对其操作数进行操作,并返回表达式中计算最右边的最后一个操作数。

但这在使用函数及其返回值方面有所不同。

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

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

正如我在评论中提到的:

前括号是自执行函数,它根据_utils对象的函数返回其值,该对象接受3个或更多参数。

关于javascript - 无法理解javascript语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44668777/

10-10 07:49