Вызывает ли себя анонимная функция в этом случае?
Есть такой код:
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 и сразу после этого вызывается.