Показать сообщение отдельно
  #1 (permalink)  
Старый 15.10.2021, 08:08
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Скобки в Javascript
По идее Javascript никак не должен изменять и оптимизировать скобки.
Как написано, так и выполняется.

let x = a+(b+c);

будет и выполняться примерно как

let _;
_ = b+c;
x = a+_;


И никак иначе
Но.

'use strict'
const A = {
   f(x) {console.log (this, x)}
};

A.f (10);  // => {A}, 10

let t = A.f;

t(20) ;  // => undefined, 20

let _;
(_ = A.f) (30);   // => undefined, 30

(A.f) (40)  // => {A}, 40   Почему?


Разве последний случай не тоже самое, что

let _;
(_ = A.f) (40);


Ведь сначала должно выполнится действие в скобках, т.е "вычислить" A.f и потом вызвать этот результат, как функцию.
Ответить с цитированием