Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Объектный код (https://javascript.ru/forum/misc/28454-obektnyjj-kod.html)

Раед 20.05.2012 17:02

Объектный код
 
Как научится правильно писать гибкий объектно ориентированный код?
Обычно я делаю как-то так
function construct(l) {
 var obj = {
  a : 5,
  b : function() {
   
  },
  c : l
 }
 return obj;
}

Или даже так
function construct(l) {
 var obj = {}
 obj.a = 5;
 obj.b = function() {
 
 }
 obj.l = l;
 return obj;
}

Но хочется чего то более сложного.
Как создают объекты профессионалы?

B@rmaley.e><e 20.05.2012 17:04

Цитата:

Сообщение от Раед
Как создают объекты профессионалы?

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

vadim5june 20.05.2012 17:48

я не знаю как профессианалы пишут но продолжаю так
function const2(){
var obj=new construct(55);
obj.c=6;
obj.d=function(){this.f=this.a+this.c}
return obj;
};
var f=new const2();alert('f='+f);f.d();alert(f.f);

vadim5june 20.05.2012 18:44

Цитата:

Сообщение от Maxmaxmахimus (Сообщение 175619)
так же функции должны быть короткими.

Как их сделаешь короткими если они по алгоритму длинные

melky 20.05.2012 18:47

Цитата:

Сообщение от Maxmaxmахimus (Сообщение 175619)
лично моя прихоть в том что ни одно свойство обьекта не изменяется прямым присваиванием (и не юзаю сеттеры).

в твоем же коде Hash.set разве не сеттер?
Цитата:

Сообщение от Maxmaxmахimus (Сообщение 175619)
Вот вот, профессионалы, в отличии от школоты, гонятся за простотой.

я бы добавил ещё, за сокращением количества ненужных телодвижений в скриптах.
Цитата:

Сообщение от vadim5june (Сообщение 175624)
Как их сделаешь короткими если они по алгоритму длинные

Декомпозиция. разбиваешь задачу на подзадачи и решаешь. так может получиться фасад.

Раед 20.05.2012 18:59

Цитата:

Сообщение от Maxmaxmахimus
Hash.prototype.keys = function () {
var elements = this._elements,
keys = [];

for ( var key in elements ) if ( elements.hasOwnProperty( key ) ) {
keys.push( key );
}

return Object.getOwnPropertyNames( this._elements );
};

Ээээ, ммм, а зачем верхняя часть.
Вы написали фи-ю, а потом вспомнили,что всё это делается одной строкой, но первый вариант удалить забыли. Да?

vadim5june 20.05.2012 19:00

Цитата:

Сообщение от melky (Сообщение 175625)
Декомпозиция-. разбиваешь задачу на подзадачи и решаешь. так может получиться -фасад.

Спасибо-посмотрю-

melky 20.05.2012 19:00

Цитата:

Сообщение от nasqad
melky, не предложите ли вы чего нибудь почитать заумного?
сам найду как настрой будет :3

на меня огромное впечатление произвела книга Крокфорда. может, и вам понравится.

beard 20.05.2012 19:24

Цитата:

Сообщение от melky (Сообщение 175633)
на меня огромное впечатление произвела книга Крокфорда. может, и вам понравится.

она уже едет ко мне, я вчера заказал :) Вместе с доставкой под дверь 100грн.

melky 21.05.2012 07:50

как много букв тратится на Toggle.prototype


Часовой пояс GMT +3, время: 05:21.