Показать сообщение отдельно
  #38 (permalink)  
Старый 02.12.2013, 20:48
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от StSpirit Посмотреть сообщение
Вы правильно меня поняли, мне действительно не нравится внутри конструктора создавать новые инстансы (даже не создавать, а описывать и создавать), когда, по идее, это можно было бы описать по другому. Вопрос закрыт.
Как вариант:

function Sub() {
}

function Sub2() {
}

function Base() {
    for (var key in this.links) {
        this[key] = new this.links[key]();
    } 
}

Base.prototype.links = {
    sub: Sub,
    sub2: Sub2
};


Это простейший вариант без "сахара", т.е. в прототипе мы декларируем какие должны быть свойства у инстантса, а затем в конструкторе вызываем "волшебный" метод, который всё делает. Во многих языках, вроде Java нормальная практика описывать свойства класса в отдельном файле XML в виде декларативной формы, для улучшения восприятия и поддержки, так что тут можно делать что вроде этого и это нормально.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 02.12.2013 в 20:50.
Ответить с цитированием