Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Элитного кода тред (https://javascript.ru/forum/offtopic/57197-ehlitnogo-koda-tred.html)

tysonfury2015 23.07.2015 20:28

kobezzza,
Кстати, ты говоришь, это не миксины, но че то сомнительно.
class CatDog extends pluralParent(Cat, Dog) {}

Я честно говоря, не понял до конца, но это выглядит так, как будто он смешивает все хрень в прототипе объекта CatDog. если это так, это тоже частный случай, и это не годится, ибо, он не сможет потом убрать из прототипа отдельно Cat или Dog, либо заменить чем либо.

kobezzza 23.07.2015 20:33

Цитата:

Я зашел. Я плохо разбираюсь в синтаксисе, то что там выбросил транслятор -- это вообще мрак, там запаришься разбираться.
Кто то по дешёвому сливается :D

Цитата:

Иначе это выглядит так, как будто ты зассал, и надеешься на то, что я твой код не смогу разобрать и проверить.
:lol:

Цитата:

То что написал предыдущий оратор, это в любом случае не то.
Аргументов не ждать?) Объясню для имбицилов, в том примере реализовано полноценное делегируемое множественное наследование на прототипах, весь prototype chain объектов сохраняется, память лишняя не тратится, конфликты решаются, а при желании можно реализовать любую другую схему, хоть на сообщениях. И самое главное, всё это встроено в нативный синтаксис классов, поэтому ничего даже учить не надо.

ЗЫ: ты малолетний бездарь с завышенным ЧСВ, на мнение которого абсолютно ВСЕМ насрать, у тебя нет ни проектов, ничего вообще, кроме своих фантазий и желчи, который ты тут всех поливаешь.

kobezzza 23.07.2015 20:33

Цитата:

Я честно говоря, не понял до конца, но это выглядит так, как будто он смешивает все хрень в прототипе объекта CatDog. если это так, это тоже частный случай, и это не годится, ибо, он не сможет потом убрать из прототипа отдельно Cat или Dog, либо заменить чем либо.
В этом и проблема, что ты не понимаешь, но катишь балон. Никаких миксинов там нет. Логика такая:

При поиске свойства в объекте оно ищется в своём proto chain, если его там нет, то ищется в proto chain первого дополнительного родителя, если и там нет, то второго и т.д. Никаких миксинов, полная поддержка рантайм и нативно для JS.

Цитата:

он не сможет потом убрать из прототипа отдельно Cat или Dog, либо заменить чем либо.
Да легко, хоть пачками удаляй/добавляй прототипы, там всё будет работать.

tysonfury2015 23.07.2015 20:36

Цитата:

Сообщение от kobezzza
Никаких миксинов там нет.

Покажи как выкинуть из CatDog, скажем Cat

kobezzza 23.07.2015 20:40

Цитата:

Сообщение от tysonfury2015 (Сообщение 381256)
Покажи как выкинуть из CatDog, скажем Cat

function pluralParent(...parents) {


Ставим свойство parents, как свойство созданного объекта, и потом просто добавляем/удаляем свойства из него и всё. Поиск свойств делает прокси, даже человеку, который вчера узнал JS будет всё очевидно.

tysonfury2015 23.07.2015 20:45

kobezzza,
Я щас попробую переписать все на обычном JS, потом запощу тут (если сегодня не успею, может завтра), а ты мне скажешь, правильно ли я переписал, потом будем дальше разговаривать. Пока ничего сказать не могу, голова не варит.

kobezzza 23.07.2015 20:47

А теперь твой ход, ты говорил, что рекурсия для мудаков и всё надо делать на циклах, поэтому давай запускаемой код функции, которая делает рекурсивный миксин объекта с произвольной глубиной и структурой произвольным количеством других объектов, короче аналог jQuery.extend или Collection.extend, но на одних циклах. Или ты заранее сливаешься?

tysonfury2015 23.07.2015 20:50

kobezzza,
Я сначала с кодом разберусь, потом сделаю твою фигню. Во первых, я не уверен, что там все чисто, а во вторых, сомневаюсь, что это достаточно полная реализация.

kobezzza 23.07.2015 20:51

Цитата:

Сообщение от tysonfury2015 (Сообщение 381263)
kobezzza,
Я сначала с кодом разберусь, потом сделаю твою фигню. Во первых, я не уверен, что там все чисто, а во вторых, сомневаюсь, что это достаточно полная реализация.

Такое ты говорил уже год назад, значит будет слив :yes:

cyber 23.07.2015 20:56

kobezzza, это че максимус?)


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