kobezzza, да у меня сейчас так практически и есть - я создавал копии уже определенных объектов и атрибутов в цикле. Именно это мне не нравилось, а варианта кроме переноса огромного куска кода внутрь конструктора не видел, но походу это лучший выход. Спасибо.
|
Цитата:
|
Цитата:
ну короче как-то так: 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); }; |
...
|
Цитата:
![]() Нет, это фассад. |
jsru_,
Основной минус такого подхода в том что Sub() описана как глобальная функция, и теряется вся красота и логика кода - попробуйте из описания угадать где оно используется?. А вот маленькие фабрики использовать, отнюдь, не грех, само просится, мануфактура, так сказать. |
Цитата:
http://dmitrysoshnikov.com/ecmascrip.../#kompozitsiya А "фабрикой" называется функция, которая порождает новые объекты (без явного вызова конструктора и оператора new), например функция Object в JS является фабрикой: alert(Object(1) instanceof Number); alert(Object('foo') instanceof String); |
Цитата:
|
Цитата:
var Base = (function () { function Sub() { } function Base() { } return Base; })(); Это простейший вариант. Наружу выйдет только Base. |
почему ты не пишешь так? круче же смотрится, да и логичнее.
var Module = new function(){ }; |
Часовой пояс GMT +3, время: 10:51. |