2012-01-31 3 views
0

Можно создать дубликат:
What do parentheses surrounding a JavaScript object/function/class declaration mean?
What does this javascript syntax mean?
What does this “(function(){});”, a function inside brackets, mean in javascript?Что означает этот синтаксис? (Функция() {// код})()

В приведенном ниже коде анонимная функция выполняется.

var a= 1; 
var b =2;   
(function() { 
    var b = 3; 
    a += b; 
})(); 
document.write(a + " "+ b); 

1) Что делает установка круглых скобок вокруг определения функции?

2) Что делает сдача () после закрытия круглой скобки?

+0

Прочитайте это: http://stackoverflow.com/questions/593509/javascript-syntax-function-calls-and-using-parenthesis надеюсь, что это помогает :) –

ответ

2

() Если собрать вокруг function() { ... } делает это выражение против заявления. Поскольку это выражение, которое производит значение функции, в конце вызывает (), вызывается созданная функция.

Рассмотрим альтернативы

function() { 
    var b = 3; 
    a += b; 
}(); 

Это приводит к синтаксической ошибке, как (), по существу пытается вызвать заявление.

(function() { 
    var b = 3; 
    a += b; 
}); 

Это производит объект function, который никогда не вызывается.

0

Ну вы сказать, что в первой строке, то код создает анонимную функцию выполняет его без аргументов (трейлинг скобка)

+0

Не знаю, почему твой был датирован без голосования, так как ваш ответ выглядит верным в моем не экспертном мнении Javascript. – CadentOrange

0

Это функция выполняет ее самостоятельно, если вы хотите создать область (или определить локальную переменную), поскольку javascript не имеет области блока, нужна функция.

0

ok, ваш первый ответ на вопрос - это просто покрытие функции отверстия. Без нее функция будет выполнена, а вторая - анонимной функцией без аргументов.

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