Да) это я придумал когда доказывал одному парню что прототипы могут все что могут классы, тогда он давал мне задания которые я не мог сделать обычным способом но я выкручивался, в итоге он мне сказал что это больше походит на костыль, а я ему ответил что если тебе не удобно так пистаь то это можно в простую обертку обернуть)
Собственно вот как это выглядело без обертки:
// конструктор животного (создает животных)
function Animal () {
return this.init.apply(this, arguments)
}
// конструктор прототипа животного (создает эталонное животное)
function AnimalPrototype () {
this.init = function(){};
this.run = function(){ alert('run') }
}
// создаем эталонное животное как прототип животных
// конструктор Animal будет инициализировать метод инициализации (init) эталонного животного
Animal.prototype = new AnimalPrototype;
// конструктор котов(создает котов)
function Cat () {
return this.init.apply(this, arguments)
}
// конструктор прототипа кота(создает эталонного кота)
function CatPrototype(){
this.run = function(){ CatPrototype.prototype.run.apply(this, arguments); alert('run') }
}
// указываем что эталонное животное будет эталоном для эталонных котов
CatPrototype.prototype = Animal.prototype;
// создаем эталонного кота как прототип котов
// конструктор будет инициализировать метод инициализации (init) эталонного кота
Cat.prototype = new CatPrototype;
эталон, прототип, образец - синонимы. (это и называется наследование на прототипах, когда один обьект служит образцом для других и они стараются на него ровняться если отличия не созданы намеренно, это техника повторного использования кода, когда у дочерних обьектов нам нужно описывать только отличие от эталонного, и, как бонус, оно экономит память ) вот, а в Class это все делается автоматически) |
godofjavascript,
Всё твоё сообщение - копипаста из раздела "учебник". Мог бы просто ссылку дать. |
> почему нет то?
не думаю что компилятор хаскела совсем идиоты писали > ты так говоришь, будто у нас такой код везде встроен главное - возможность такого встраивания. из-за этой возможности невозможно применить нужные оптимизации. |
Цитата:
http://ru.wikipedia.org/wiki/%D0%A4%...%D0%BA%D 0%B0) приятного чтения |
Цитата:
Цитата:
мы говорим о разных вещах - ты о компиляторе JS, я о стиле программирования. кстати, я немного перепутал Функциональное с Декларативным вообще, извини :)) |
Цитата:
|
а, ну программировать "в стиле" фп конечно можно) только это будет всё-равно императивная парадигма :Р
|
Цитата:
tenshi, ты мне так и не ответил, каким образом то что в яваскрипте можно функциями делать побочные действия делает тебя ОБЯЗАННЫМ их делать превращая в процедуры? ссылки на википедию мне кинул, только узнал штоле о фп и решил поделиться? |
Цитата:
Ссылку сам ищи если хочешь. |
Цитата:
|
Цитата:
http://yandex.ru/yandsearch?text=%2F...28ini& lr=239 Вот тебе ооогромная ссылка. javascript.ru сайт дискрипшен посмотри, он доказывает что ты был в учебнике |
Цитата:
|
а вообще, раз тут все делятся своими реализациями классов - я допилил свою) https://github.com/nin-jin/PMS/tree/master/jin/class
наследование реализуеся через примеси. ссылка на объект передаётся не через this а через первый параметр метода. |
Макаксимус, тема на столько уныла что мне хочется прямо сейчас забыть о её существовании. Чтобы раз, и в следующее мгновение я, не понимая зачем набирал этот текст, закрываю вкладку. Это даже не троллинг. Чисто флуд. По моему ты ещё когда немо был писал про эту функцию. Нет? У меня deja vu какое то.
|
Цитата:
Цитата:
Цитата:
|
> приведи пример зависимости от изменьчивого состояния и каким образом это сделает из функции процедуру и по какому такому определению.
уже давно привёл. читай внимательней > ну толсто же, я уже где-то 8 раз говорю что это не реализация ооп из других языков а обертка над прототипаим) вы тред вообще не читаете или просто долбоебы)? не словоблудствуй. класс - это не более чем описание группы объектов - их структуры и жизненного цикла. конкретный способ описания (функция+прототип, прототип с методом инициализации, ещё какой дсл) и поддерживаемые фичи (приватные поля, защищенные поля, контроль интерфейсов, кастинг в другие классы) - это детали > навскидку: избыточно кушает память, и медленно, потому что приходится примешивать каждый раз общие свойства и мтеоды при конструировании. так как они не делегируются из прототипа. я прав? нет, все методы делегируются из прототипа |
Цитата:
Цитата:
|
> ты в прототип штоле примешиваешь??
ну не в инстанс же > ты в курсе что примеси и делегирование это ваще разные противоречивые вещи? ты просто не умеешь их готовить |
Цитата:
Цитата:
this.head = new Head; тоже в прототип прмешаешь? Timmy, ![]() ссылку на учебник можно получить? |
| Часовой пояс GMT +3, время: 16:22. |