02.12.2013, 22:21
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от Maxmaxmaximus3
|
почему ты не пишешь так? круче же смотрится, да и логичнее.
var Module = new function(){
};
|
У меня в голове нездоровая ассоциация с new, как с созданием нового инстанса, мне твой способ менее очевиден, дело привычки.
|
|
02.12.2013, 22:30
|
Профессор
|
|
Регистрация: 18.11.2013
Сообщений: 275
|
|
ты создаешь новый инстанс модуля тип) типа не прост функция какая то а обьект возвращает, и это модуль, у меня так, у тя не?
или ты сразу думаешь раз new значит есть какой-то класс? и что же это за класс? - да?
|
|
02.12.2013, 22:32
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от Maxmaxmaximus3
|
или ты сразу думаешь раз new значит есть какой-то класс? и что же это за класс? - да?
|
Угу, дело в том, что ОО подход я осваивал в C# и ActionScript3, так уж сложилось
Но скоро мы получим православный встроенный синтаксис модулей и всё будет хорошо!
Последний раз редактировалось kobezzza, 02.12.2013 в 22:36.
|
|
02.12.2013, 22:54
|
|
Кандидат Javascript-наук
|
|
Регистрация: 09.04.2013
Сообщений: 149
|
|
...
Последний раз редактировалось jsru_, 03.12.2013 в 10:24.
|
|
02.12.2013, 23:05
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от jsru_
|
все правильно, ты кинул ссылку на пример композиции, но то, что ты написал это не композиция
|
Это ещё почему? Ты троллишь чтоли? У нас есть объект, у него есть свойство - другой объект, который является делегатом, а исходный объект делегирует ему свои обязанности и вместе они образуют композицию. Приведи хоть один аргумент подтверждения своих слов или признай, что ошибся.
Цитата:
|
Данное отношение объектов называется “has-a”, т.е. “имеет внутри себя” – в отличии от наследования – “is-a” – “является (наследником)”.
|
function Base() {
this.sub = new Sub();
}
Base.prototype.sub = null;
function Sub() {
}
Base содержит в себя Sub и можете делегировать ему свои обязанности, а фабрикой - это вообще из другой оперы.
function Base() {
this.sub = new Sub();
}
Base.prototype.sub = null;
Base.prototype.foo = function () {
return this.sub.foo();
};
function Sub() {
}
Sub.prototype.foo = function () { alert('foo!'); }
new Base().foo();
Последний раз редактировалось kobezzza, 02.12.2013 в 23:17.
|
|
02.12.2013, 23:14
|
|
Кандидат Javascript-наук
|
|
Регистрация: 09.04.2013
Сообщений: 149
|
|
...
Последний раз редактировалось jsru_, 03.12.2013 в 10:23.
|
|
02.12.2013, 23:19
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от jsru_
|
композиция - это когда ты вызываешь метод на родительском классе и он вызывает рекурсивно методы всех композиций (composite), пока не дойдет до исполнителя (leaf). или ты думаешь, если ты вызываешь внутри конструктора другой конструктор, то они образуют композицию? ну как знаешь...
|
Композиция - это паттерн повторного использования кода, альтернатива наследованию, в частности множественному. То что ты говоришь - это делегирующее наследование.
|
|
02.12.2013, 23:21
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от jsru_
|
или ты думаешь, если ты вызываешь внутри конструктора другой конструктор
|
Слишком толсто. Очевидно, что я не стал расписывать, что свойство объект в конструкторе было создано с целью дальнейшего делегирования (двумя постами выше я уже привёл пример), а не с целью "вызвать конструктор в конструкторе", причём это поняли все, кроме тебя.
Цитата:
|
function Base() {
this.sub = new Sub();
}
Base.prototype.sub = null;
Base.prototype.foo = function () {
return this.sub.foo();
};
function Sub() {
}
Sub.prototype.foo = function () { alert('foo!'); }
new Base().foo();
|
Последний раз редактировалось kobezzza, 02.12.2013 в 23:26.
|
|
02.12.2013, 23:46
|
Профессор
|
|
Регистрация: 18.11.2013
Сообщений: 275
|
|
kobezzza, вот я о том и говорю, тут 1-3 человека включая тебя и меня которые шарят. при чем я самый хучший из этих троих.
Вот я например например поржал когда он про фабрику пошутил, а все бы подумали что я дурак и тупой и это рельно фабрика и что он не шутил =) вот такой тут народец
kobezzza, кстати , а в твоем примере если бы Sub должен был бы знать что-то о Base, то это означало бы что мы делаем что-то не правильно? (Так как в данном случае Subы не должны ни чего знать о Base)
Последний раз редактировалось Maxmaxmaximus3, 02.12.2013 в 23:50.
|
|
02.12.2013, 23:53
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от Maxmaxmaximus3
|
kobezzza, кстати , а в твоем примере если бы Sub должен был бы знать что-то о Base, то это означало бы что мы делаем что-то не правильно? (Так как в данном случае Subы не должны ни чего знать о Base)
|
Ну, я всегда против того, когда "вложенный" объект знает о своём родителе, но если нужно нужна провязка, то сам Бог велел использовать обсёрвер, и это будет самое разумное решение Вообще event-driven - это здорово, если бы порой это не было бы так запутано, поэтому и придумали FRP (но мы то знаем, что внутри всё те же события).
|
|
|
|