2013-12-05 2 views
-2

Я просто не могу обернуть мою голову вокруг того, как работает это возвращение функции:Не понимаю, как этот вид оператора возврата работает

var Object = (function() { 

     function init() {  
      console.log('init'); 
     } 

     return { init : init }; 

    })(); 

Я понимаю, что он возвращает объект, но почему два «INIT»» s используются в операторе return. Можно ли установить это по-другому, чтобы сделать его более читаемым? Больше ресурсов, где я мог бы больше узнать об этом?

спасибо.

+2

Свойство «init» установлено в значение «init». Это так же понятно, как и будет. Посмотрите на некоторые базовые обучающие программы js. – Daedalus

+0

Вы можете: http://jsfiddle.net/X5QSF/ – Cherniv

+0

Ищите «шаблон модуля JavaScript» – elclanrs

ответ

0

Это потому, что вы определяете функцию «init», тогда вам нужно объявить структуру объекта и установить ее в переменную-член с именем init.

Вы можете избежать удвоения, путем удаления переменной:

var Object = (function() { 

    return { init : function() { 
         console.log('init'); 
        } 
      }; 

})(); 

Но я бы не предположить, что более читаемым.

Кроме того, вы можете указать , если декларация объекта не содержит ничего, что необходимо выполнить немедленно, удалите внешнюю «функцию».

var Object = { init : function() { 
         console.log('init'); 
        } 
      }; 
Смежные вопросы