Показать сообщение отдельно
  #6 (permalink)  
Старый 16.10.2021, 00:07
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

Не стоит гадать и отгадывать.

JavaScript это формализованный язык программирования что означает что у него есть четкие правила (грамматики) с помощью которых выполняется синтаксический разбор. Все эти правила описаны в спецификации языка.

В первом случае «(_ = A.f) (30);» в части выражения «(_ = A.f)» есть оператор "=" который и превращает эту часть выражения в так называемый AssignmentExpression.
AssignmentExpression не может быть частью другого выражения.
Для выражения которое является частью другого выражения используют понятие MemberExpression (т.е. такое к которому можно добавить параметры и попробовать вызвать как функцию).
Кстати запятая в выражении то же делает выражение как AssignmentExpression https://262.ecma-international.org/8.0/#prod-Expression.
Ответить с цитированием