Что такое самозвонящиеся функции в JavaScript? - PullRequest
2 голосов
/ 22 сентября 2011

Из того, что я слышал, есть "функция самовызова":

func(){}();

Чем он отличается от следующего?

func(){} func();

1 Ответ

11 голосов
/ 22 сентября 2011

Полагаю, вы имели в виду разницу между ( I ):

function(){}();

и ( II ):

function func(){};
func();

или даже ( III ):

var func = function(){};
func();

Все три ведут себя одинаково в отношении результатов, однако имеют разные названия и область видимости:

  • I : это не сделает функцию доступной ни под каким именем, она будет запущена один раз и забыта. Вы не можете ссылаться на него в будущем

  • II : функция func создана и доступна во всей функции ограждения, даже до ее определения ( подъем )

  • III : * определяется переменная func, указывающая на функцию. Он не будет доступен до его определения.

Обратите внимание, что в II и III функция доступна по имени func и может вызываться снова несколько раз. Это невозможно с функцией самовызова в I .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...