2013-08-26 4 views
1

При написании курса javascript для некоторых сотрудников я случайно обнаружил альтернативный синтаксис для функции самозапускания. Кто-нибудь знает об этом, есть ли какие-то особенности? Я не смог найти документацию об этом.Альтернативный синтаксис для функции самозапускания?

КОД: классический синтаксис

(function(){ 
     console.log("I'm self-invoked!"); 
    })(); 

альтернативный синтаксис

(function(){ 
     console.log("Me too!"); 
    }()); 

Спасибо за подсказки!

+3

Он работает точно так же; скобки необходимы только для того, чтобы исключить его анализ как оператор (также будет работать унарный оператор). Что ты не понимаешь? – SLaks

ответ

2

Оба идентичны по смыслу.

В обоих случаях ( на стартовых символах начинается of an expression. Это указывает на начало a function expression, которое мы намерены вызывать. Наконец, мы его вызываем. Различие является тонким и не имеет значения вообще, давайте рассмотрим его:

(function(){ 
    console.log("I'm self-invoked!"); 
})(); 

Здесь ( должен сказать компилятору это начало выражения, компилятор вычисляет (выражение функции в данном случае) выражение а затем вызывает его (вне выражения).

(function(){ 
    console.log("Me too!"); 
}()); 

Здесь - картина invokation (()) является частью этого самого выражения.

+0

Спасибо, теперь ясно. – jonBreizh

+0

@jonBreizh Добро пожаловать, я сделал этот ответ wiki сообщества, чтобы другие пользователи могли его отредактировать и добавить дополнительную информацию (и потому, что вопрос довольно простой). Если вы хотите добавить к нему - вы можете. –

Смежные вопросы