Ответ 1
Позорное выражение запятой a,b
оценивает оба аргумента и возвращает значение правого выражения.
Следовательно, в этом случае он точно такой же, как foo();
.
Вот лучший пример, который поможет вам понять, что происходит:
function foo() {
print("foo called");
return 123;
}
function bar() {
print("bar called");
return 456;
}
var result = (foo(), bar());
print("result:", result);
Вывод:
foo called
bar called
result: 456
Также выражение запятой может быть путано с аргументами функции разграничения запятой. Не то же самое! Обратите внимание на разницу:
print("result:", foo(), bar() ); // 3 arguments, no comma operator
print("result:", (foo(), bar()) ); // 2 arguments, comma operator