2012-05-20 1 views
0

Каков наилучший способ организовать ваши литералы объектов JavaScript?Лучший способ организовать методы и свойства в объекте объекта JavaScript

я обычно делаю что-то вроде этого:

var myObj = { 
    property1 : 'string', 
    property2 : true, 
    method1 : function() {}, 
    method2 : function() { 
     // Do something with method1 here 
     method1(); 
    } 
    init : function() { 
     method2(); 
    }  
}; 

В принципе, у меня есть свои глобальные свойства в верхней части, методы ржали.

Кроме того, если у меня есть метод кавычки другого метода, я сначала пишу нижний уровень, а затем тот, который имеет дело с ним. Это логично для меня, поскольку вы впервые прочитали более базовые функции и операции, которые выполняются с ним. Однако я заметил, что люди с большим опытом, чем я, делают это наоборот.

Есть ли правильный подход для этого или это вопрос выбора?

Кроме того, я заметил в учебниках, что обычно люди префикс некоторых методов, таких как метод сборки или метод init, с подчеркиванием, например _bulid или _init. Какова логика этого?

+3

Как вы это делаете, это нормально в большинстве случаев, если вы помещаете все объекты в одно и то же пространство имен. Вы также можете взглянуть на шаблон модуля - http://addyosmani.com/resources/essentialjsdesignpatterns/book/#modulepatternjavascript –

+0

Подчеркивание часто используется для выражения того, что этот метод является «конфиденциальным». – Niko

ответ

1

На самом деле это зависит от вашей программы и способа написания кода, потому что there are a lot of ways to namespace stuff in JS, а литералы объектов - лишь один из них.

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