Да) это я придумал когда доказывал одному парню что прототипы могут все что могут классы, тогда он давал мне задания которые я не мог сделать обычным способом но я выкручивался, в итоге он мне сказал что это больше походит на костыль, а я ему ответил что если тебе не удобно так пистаь то это можно в простую обертку обернуть)
Собственно вот как это выглядело без обертки: // конструктор животного (создает животных) 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, время: 18:37. |