Возможный дубликат:
Что делают пустые скобки () после объявления функции в javascript?
Я в основном понимаю, как работает Javascript. Теперь я самостоятельно изучаю шаблоны проектирования Javascript, просматривая работы других программистов, и я натыкаюсь на это
var $a = (function() {
var a..... //assigning values & functions to variables
return { init : init }; //in the variable above there is "init"
})();
$a.init();
Я могу сказать, что $a.init()
создает объект со свойствами и функциями, перечисленными выше. Но я не понимаю, как это на самом деле работает.
Почему функция написана именно так(function() { })()
?
Зачем нужна return {init: init}
, когда выше уже есть функция init
?
Что это за узор?
return
создает объект с одним свойством, init, значение которого (по-видимому) является ссылкой на локальную функцию, называемую init. - person Pointy   schedule 07.01.2013return{init:init}
просто создайте функциюinit
в $a, когда вызывается $a, а затем$a.init()
выполняет остальные задания? - person   schedule 07.01.2013{ property: value, property: value, ... }
называется литеральным выражением объекта, и она создает объект. Таким образом, операторreturn
возвращает этот сконструированный объект. - person Pointy   schedule 07.01.2013