Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #41 (permalink)  
Старый 02.12.2013, 21:01
Интересующийся
Отправить личное сообщение для StSpirit Посмотреть профиль Найти все сообщения от StSpirit
 
Регистрация: 02.12.2013
Сообщений: 13

kobezzza, да у меня сейчас так практически и есть - я создавал копии уже определенных объектов и атрибутов в цикле. Именно это мне не нравилось, а варианта кроме переноса огромного куска кода внутрь конструктора не видел, но походу это лучший выход. Спасибо.

Последний раз редактировалось StSpirit, 02.12.2013 в 21:11.
Ответить с цитированием
  #42 (permalink)  
Старый 02.12.2013, 21:15
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

Сообщение от StSpirit
мне действительно не нравится внутри конструктора создавать новые инстансы
почему? какие недостатки?
Ответить с цитированием
  #43 (permalink)  
Старый 02.12.2013, 21:22
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

Сообщение от kobezzza
описывать свойства класса в отдельном файле XML в виде декларативной формы, для улучшения восприятия и поддержки
а у меня такой стиль, вначале парсим атрибуты, потом создаем переменные, оперируем с ними, и полученное засовываем в поля обьекта, после, вызываем всякие инициализационые функции:

ну короче как-то так:

function Cat(fullname, age) {
    age = age || 0;
    fullname = fullname || '';

    var reg = /\w+/img;
    var name = fullname.match(reg)[0];
    var soname = fullname.match(reg)[1];

    this.soname = soname;
    this.name = name;
    this.age = age;

    this.startTimer(1000);
}

  
Cat.prototype.startTimer = function(time) {
    setInterval(this.say.bind(this), time);
};

  
Cat.prototype.say = function() {
    alert(this.name);
};

Последний раз редактировалось Maxmaxmaximus3, 02.12.2013 в 21:26.
Ответить с цитированием
  #44 (permalink)  
Старый 02.12.2013, 21:37
Аватар для jsru_
Кандидат Javascript-наук
Отправить личное сообщение для jsru_ Посмотреть профиль Найти все сообщения от jsru_
 
Регистрация: 09.04.2013
Сообщений: 149

...

Последний раз редактировалось jsru_, 03.12.2013 в 10:24.
Ответить с цитированием
  #45 (permalink)  
Старый 02.12.2013, 21:41
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

Сообщение от jsru_
Мне кажется ты путаешь. это скорее фабрика, причем упрощенная


Нет, это фассад.
Ответить с цитированием
  #46 (permalink)  
Старый 02.12.2013, 21:53
Интересующийся
Отправить личное сообщение для StSpirit Посмотреть профиль Найти все сообщения от StSpirit
 
Регистрация: 02.12.2013
Сообщений: 13

jsru_,
Основной минус такого подхода в том что Sub() описана как глобальная функция, и теряется вся красота и логика кода - попробуйте из описания угадать где оно используется?. А вот маленькие фабрики использовать, отнюдь, не грех, само просится, мануфактура, так сказать.

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

Сообщение от jsru_ Посмотреть сообщение
Мне кажется ты путаешь. это скорее фабрика, причем упрощенная
Это ты путаешь
http://dmitrysoshnikov.com/ecmascrip.../#kompozitsiya

А "фабрикой" называется функция, которая порождает новые объекты (без явного вызова конструктора и оператора new), например функция Object в JS является фабрикой:

alert(Object(1) instanceof Number);
alert(Object('foo') instanceof String);
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 02.12.2013 в 22:18.
Ответить с цитированием
  #48 (permalink)  
Старый 02.12.2013, 22:04
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

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

Сообщение от StSpirit Посмотреть сообщение
jsru_,
Основной минус такого подхода в том что Sub() описана как глобальная функция, и теряется вся красота и логика кода - попробуйте из описания угадать где оно используется?. А вот маленькие фабрики использовать, отнюдь, не грех, само просится, мануфактура, так сказать.
Ну опиши её в модуле:

var Base = (function () {
    function Sub() {
    }

    function Base() {
    }

    return Base;
})();


Это простейший вариант. Наружу выйдет только Base.
__________________
kobezzza
code monkey
Ответить с цитированием
  #50 (permalink)  
Старый 02.12.2013, 22:18
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

почему ты не пишешь так? круче же смотрится, да и логичнее.

var Module = new function(){


};
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищу функцию для canvas, которая будет перемещать мой объект на позицию х,у eko24 Events/DOM/Window 0 12.10.2013 00:33
Создать объект в объекте Bryant-24 Общие вопросы Javascript 3 10.07.2013 16:06
Как гугл получает объект внутри тега <script>? zilker Events/DOM/Window 4 19.03.2013 17:19
Передать ссылку на объект а не объект возникновения события Blazze Events/DOM/Window 0 11.10.2011 00:45
Получить объект содержащий caller no_alex Общие вопросы Javascript 14 20.03.2009 21:37