Вызывает ли себя анонимная функция в этом случае?

Есть такой код:

let obj, method;

obj = {
  go: function() { alert(this); }
};

(method = obj.go) ();   //  undefined

Что произойдет в этом куске кода: (method = obj.go) ();?

В первых скобках будет: method = function() { alert(this); }

После присвоения выражение в скобках будет таким: function() { alert(this) ()

Тут получается анонимная функция, вызывает себя или какая тут логика?


Ответы (1 шт):

Автор решения: ΝNL993

Если отвечать на вопрос, то нет, это не анонимная функция выполняющая себя, если бы это была анонимная функция тогда это выглядело бы так:

(function() {
  method = obj.go()
})()

В вашем же случае сначала переменная method приравнивается к функции go и сразу после этого вызывается.

→ Ссылка