Показать сообщение отдельно
  #1 (permalink)  
Старый 25.07.2012, 19:10
Аспирант
Отправить личное сообщение для bFree Посмотреть профиль Найти все сообщения от bFree
 
Регистрация: 19.08.2008
Сообщений: 42

Правильное оформление объекта
Встала необходимость освоить JS на хорошем уровне. Возник вопрос.

В чем ключевое отличие между способами создания объектов и их членов/методов?
Также почему я часто вижу какие-то велосипеды для эмуляции приватных свойств, когда они и так есть "из коробки" ?

Вот пример:

// Как начал писать я
function foo(init_params) {
     var self = this; // Еще один вопрос: это антипаттерн? 
     
     var private_member; // Я вижу приватные свойства так

     var init = function(self) {
         // конструктор
     }
     
     // Публичные методы
     self.someMethod = function(params) {
           // Метод
     }

     // --- //
     init(self); // вызов конструктора
}

var bar = new foo(params);
bar.someMethod(...);


В чем ужас подобного подхода? Везде, где я смотрю и читаю, я вижу такое:

function foo() {
    var privateMember;

    this.publicMember = false;
}

foo.prototype.method = function(a) {
	// метод
};

var bar = new foo();
b.method(...);


Почему так? Имхо, читабельность ниже.
Ответить с цитированием