Невозможно понять синтаксис JavaScript

Я перебирал код response-jsonschema-form. Я наткнулся на следующие строки, которые я не могу понять.

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

Как содержимое в первой скобке является функцией, которой передаются аргументы (схема, props.formData и т. Д.)?

2 ответа

Решение

Я думаю, что ответ на этот вопрос заключается в том, что в первом выражении (0,_utils.getDefaultFormState) запятая , Оператор вычисляет до последнего аргумента и возвращает его.

Таким образом, оператор запятой работает со своими операндами слева направо и возвращает прошлой правый наиболее оцененный операнд в выражении.

Но это отличается с точки зрения использования функций и их возвращаемых значений.

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

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

Как я уже упоминал в комментарии:

Первые скобки являются самоисполняющейся функцией, и она возвращает свое значение как функцию _utils объект, который принимает 3 или более аргументов.

В этом контексте первая пара скобок представляет собой последовательность операторов, значением которой является значение последнего выражения. Затем:

(0,_utils.getDefaultFormState)

возвращает функцию объекта _utils.getDefaultFormState который затем вызывается со следующими аргументами.

Другие вопросы по тегам