Възможен дубликат:
Какво правят празните скоби () след декларация на функция в 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