02.01.2016, 21:00
|
Аспирант
|
|
Регистрация: 29.12.2015
Сообщений: 58
|
|
Keramet,
Особенно конструкторы будут Вам мешать при создании сабклассов. Тот пример котрый я привел, например, пишется с конструкторами через жопу и с кучей костылей. как-то так
|
|
02.01.2016, 21:02
|
Профессор
|
|
Регистрация: 30.12.2015
Сообщений: 194
|
|
Сообщение от callbackhell
|
Нет никакого нарушения цепочек. Вы сами же эти цепочки и реализуете, в этом и заключается Ваша реализация наследования.
|
ну насколько я понял, при обращении к свойству объекта, если это свойство не определено в этом экземпляре, оно (св-во) ищется по цепочке прототипов (вплоть до Object.prototype). Если и там нет - то выдается undefined. Я поэтому и считаю - что при нарушении цепочки можно получить не то, что ожидалось
Последний раз редактировалось Keramet, 02.01.2016 в 21:04.
|
|
02.01.2016, 21:23
|
Аспирант
|
|
Регистрация: 29.12.2015
Сообщений: 58
|
|
Keramet,
Еще раз повторяю, разрушить ничего нельзя, потому что ничего нет. Вы сами строите цепочки наследования. Это Ваша забота выстроить их так как нужно
|
|
02.01.2016, 21:31
|
Профессор
|
|
Регистрация: 30.12.2015
Сообщений: 194
|
|
Стоп! "Чуть по-медленнее, я запиСУЮ.."
Конструкторы и прототипы придумали для того, чтобы реализовать наследование в ДжС, т.к. он (ДжС) не поддерживает классы. правильно?
|
|
02.01.2016, 21:36
|
Аспирант
|
|
Регистрация: 29.12.2015
Сообщений: 58
|
|
Сообщение от Keramet
|
правильно?
|
Нет не правильно. Прототипное ООП не нуждается ни в каком синтаксисе для классов, для того чтобы ПОЛНОСТЬЮ поддерживать ООП-парадигму, в том числе и наследование. Прототип JS -- язык Self, язык более мощный чем JS, там ЕМНИП, поддерживается в том числе множественное наследование, и там нет синтаксиса для классов. Айк ввел new и некоторое другое дерьмо для того чтобы JS был похож на жабу, это был маркетинговый ход. И он сожалеет об этом, он писал это в своих воспоминаниях.
|
|
02.01.2016, 21:52
|
Профессор
|
|
Регистрация: 30.12.2015
Сообщений: 194
|
|
callbackhell,
меня учили, что ООП - это программирование, основными характеристиками которого является инкапсуляция, наследование и полиморфизм (я закончил ВУЗ лет 15 назад, может что-то изменилось ) в классических ООП языках (джава, С++) для этих целей применяюстя классы. в ДжС классов нет, тут есть прототипы. правильно?
|
|
02.01.2016, 21:55
|
Аспирант
|
|
Регистрация: 29.12.2015
Сообщений: 58
|
|
Сообщение от Keramet
|
в ДжС классов нет, тут есть прототипы. правильно?
|
Сейчас уже есть, к сожалению. Но классы -- это лишняя сущность. К тому же они реализованы отвратительно, их лучше не использовать, если Вам нужна гибкость.
Сообщение от Keramet
|
в классических ООП языках
|
С этим тоже надо поосторожней. Вас в вузе не учили, кто ввел термин ООП? И как он относится к перечисленным Вами языкам. Я бы назвал это квазиооп.
|
|
02.01.2016, 21:58
|
Профессор
|
|
Регистрация: 30.12.2015
Сообщений: 194
|
|
Сообщение от callbackhell
|
Вас в вузе не учили, кто ввел термин ООП?
|
Берн Страуструп?
|
|
02.01.2016, 22:02
|
Профессор
|
|
Регистрация: 30.12.2015
Сообщений: 194
|
|
Сообщение от callbackhell
|
Сейчас уже есть, к сожалению.
|
я ни в одной книги не сталкивался. они (классы) уже в ES5 есть или их только планируют вводить?
|
|
02.01.2016, 22:03
|
Аспирант
|
|
Регистрация: 29.12.2015
Сообщений: 58
|
|
Сообщение от Keramet
|
Берн Страуструп?
|
Вы шутите?
Цитата:
|
I made up the term 'object-oriented', and I can tell you I didn't have C++ in mind
-- Alan Kay,
|
Вы по какой специальности учились? Филология?
|
|
|
|