Классическое наследование (OOP)
PHP код:
если не юзать "наследование", то все норм почему так происходит? тему криво назвал, уже не могу исправить :( upd: Вроде понял почему, потому что недостающие свойства у С берутся у p. А массивы (и объекты вообще) при присваивании не копируются, а просто приравниваются ссылки. upd: Чото нифига не так, даже если к прототипу приравнивать каждый раз новый экземпляр P, то тоже самое :( В чем тогда дело? |
Ты присваиваешь прототип, но не вызваешь конструктора отца.
Вот тебе офигенная ссылка с глубоким объяснением наследования в JS: http://www.objectplayground.com/ Там же есть отличный playground где можешь попробовать разные техники OOP в JS и посмотреть на визуальную структуру классов. Тебе нужно Classical Inheritance. ЗЫ PHP код:
|
Ответ: Классическое наследование (OOP)
Как сказал мока нужно вызвать конструктор предка. Более удобный вариант :
PHP код:
|
Ответ: Классическое наследование (OOP)
Зачем иметь superclass если и так есть указатель на отцовский класс (.prototype), тем более тут у тебя ещё и доп функция посредник создаётся - тоже не вижу смысла.
Тем более constructor - не обязательно указывать, следственно в твоём коде есть зависимость что отцовский класс должен указать конструктор - а это не всегда будет так. |
Ответ: Классическое наследование (OOP)
Тогда вопрос... А почему просто не использовать так ? :
PHP код:
|
Ответ: Классическое наследование (OOP)
Цитата:
PHP код:
|
Ответ: Классическое наследование (OOP)
Прочитал про это дело, все вроде стало на свои места, только одно не радует, что ООП в JavaScript реализовано совсем уж мутно.
|
Ответ: Классическое наследование (OOP)
А по сути то ООП и нету :)
Есть объект, и есть концепт прототипирования, нету никаких классов и ООП по сути. Это так сказать "эмуляция". Да и когда вникнешь в суть прототипов, всё встанет на свои места и увидишь не мало плюсов в таких решениях. Главное тут это гибкость. |
Ответ: Классическое наследование (OOP)
Просто при программировании на JavaScript нужно иначе немного на логику смотреть. Я сначала тоже плевался и называл JavaScript самым идиотским и упоротым языком. Но теперь, когда понял что и как, мне он начал нравиться. Мне нравится на нём код писать. Серьёзно.
|
Ответ: Классическое наследование (OOP)
Аналогично.
|
Часовой пояс GMT +4, время: 01:42. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot