Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Понимание ООП в JavaScript (https://javascript.ru/forum/misc/3070-ponimanie-oop-v-javascript.html)

Riim 09.04.2009 20:30

Цитата:

Сообщение от Kolyaj
а множественное наследование где?

это цепочки наследования из PrototypeJs

Kolyaj 09.04.2009 20:35

http://ru.wikipedia.org/wiki/Supercl... .D0.B8.D0.B5

Riim 09.04.2009 20:42

Цитата:

Сообщение от Kolyaj
http://ru.wikipedia.org/wiki/Supercl... .D0.B8.D0.B5

Я подумал, что вы про многоуровневое наследование (не с начала читал). А примеры где может понадобиться наследование от нескольких классов придумать еще легче.

А разве в js это (множественное наследование) реализуемо?
Думаю вряд ли, ведь __proto__ только один.

Dmitry A. Soshnikov 09.04.2009 21:15

Цитата:

Сообщение от Riim
А разве в js это (множественное наследование) реализуемо?
Думаю вряд ли, ведь __proto__ только один.

Нет, но можно эмулировать (интерес только академический, приводил, как пример имитаций).

kefi 09.04.2009 21:42

Цитата:

Сообщение от Riim
А разве в js это (множественное наследование) реализуемо?
Думаю вряд ли, ведь __proto__ только один.

Мне пока кажется, что реализуемо.
__proto__ один и ладно, а если вытянуть ветки от нескольких классов в одну ( разобрать лошарика в одну линию ) то достаточно и одного __proto__ ...

Цитата:

Сообщение от Dmitry A. Soshnikov
Нет, но можно эмулировать (интерес только академический, приводил, как пример имитаций).

Хотел бы уточнить - Вы там имели ввиду , кто будет предком созданного т.о. Классного прототипа - один из родителей или Object.prototype ?
И Как Вы предполагали собирать свойства нового Классного прототипа или же все свойства у новог Класса предполагается иметь собственные (this-свойства) ?
( Класс=Конструктор+прототти п )

Riim 09.04.2009 21:50

Цитата:

Сообщение от kefi
а если вытянуть ветки от нескольких классов в одну

__proto__ это ссылка на объект. Только на один объект, у которого в свою очередь также только один __proto__, т. е. получается цепочка БЕЗ разветвлений. Но если вам удастся, как-то организовать это разветвление....

Dmitry A. Soshnikov 09.04.2009 21:51

Цитата:

Сообщение от kefi
Хотел бы уточнить - Вы там имели ввиду , кто будет предком созданного т.о. Классного прототипа - один из родителей или Object.prototype ?

Не понял предложение. У объекта есть конструктор и прототип (в конце цепи будет Object.prototype).

Цитата:

Сообщение от kefi
И Как Вы предполагали собирать свойства нового Классного прототипа или же все свойства у новог Класса предполагается иметь собственные (this-свойства) ?

Вы про какую реализацию спрашиваете? Если обычное расширение (свои this-свойства в прототип конструктора), то чем это принципиально отличается от реализации интерфейсов в Java?

Если Вы про __noSuchMethod__, повторю, в этот метод управление передастся, когда цепь прототипов объекта (единственная цепь) будет просмотрена и нужное свойство не будет найдено. Далее, в этом методе Вы уже сами определяете к каким "модулям"/"классам"/объектам (и их цепям прототипов) делегировать.

Riim 09.04.2009 21:55

Цитата:

Сообщение от Dmitry A. Soshnikov
Если Вы про __noSuchMethod__, повторю, в этот метод управление передастся, когда цепь прототипов объекта (единственная цепь) будет просмотрена и нужное свойство не будет найдено. Далее, в этом методе Вы уже сами определяете к каким "модулям"/"классам"/объектам (и их цепям прототипов) делегировать.

Первое, что придумалось не захотело работать:

var F = function() {};
F.__noSuchMethod__ = function() {
	alert('7');
	return 5;
};
var x = new F();
	
//alert(x.dfgdfd());
alert(x.dfgdfd);


FireFox и __proto__ есть.
Может сделаете простенький примерчик.

kefi 09.04.2009 22:01

Цитата:

Сообщение от rimm
т. е. получается цепочка БЕЗ разветвлений

Несколько __proto__ показывают на один прототип - вот и разветвление.

Цитата:

Сообщение от Dmitry A. Soshnikov
Не понял предложение.

Ну мы говорим о том как сделать Новый Класс из нескольких имеющихся.
Вот я и спрашиваю, что Вы предполагали в той ссылке - Кто будет непосредственным Предком Нового Класса, под Классом я понимаю = Конструктор+прототип. Т.е. на кого будет показывать свойство __proto__ прототипа от нового Класса ?

Riim 09.04.2009 22:33

Цитата:

Сообщение от kefi
Несколько __proto__ показывают на один прототип - вот и разветвление.

Смотря в каком направлении идти по этой цепочке. Думаю, что такое разветвление здесь не поможет.


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