Невозможно понять синтаксис 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
который затем вызывается со следующими аргументами.