Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Множественное наследование - миф или реальность?! (https://javascript.ru/forum/offtopic/4754-mnozhestvennoe-nasledovanie-mif-ili-realnost.html)

B~Vladi 18.08.2009 15:32

Множественное наследование - миф или реальность?!
 
На самом деле эта тема - оффтоп 100%, а чё всем всякую х...ю можно постить, а мне нельзя?! Итак, начнём...

В описании ядра JavaScript, написано, что в JS нет множественного наследования. Но раз смогли написать функцию, создания наследования (см. статьи), то может и можно, путём нехитрых манипуляций, сделать и множественное наследование?!

Если кто уже это сделал - выкладывайте, если никто не сделал - давайте вместе попробуем:)

ЗЫ: А нужно ли оно вообще кому-то?! Ваши мнения...

Kolyaj 18.08.2009 15:33

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

Цитата:

Сообщение от B~Vladi
ЗЫ: А нужно ли оно вообще кому-то?! Ваши мнения...

Иногда нужно.

B~Vladi 18.08.2009 15:34

Цитата:

Сообщение от Kolyaj
Нельзя

Пробовал?! Может об этом уже писал кто?! Давайте всё что есть...

B~Vladi 18.08.2009 15:37

Цитата:

Сообщение от Kolyaj
Ну точнее совсем нечестную эмуляцию, типа копирования свойств, конечно, можно

А хитрая функция, которая в статьях, так же делает?! Вроде как нет... Но её же придумали!

Может JS намного гибче, чем мы все думаем:-?

Kolyaj 18.08.2009 15:42

Хитрая, как ты говоришь, функция ничего хитрого не делает.
А причина невозможности банальная: чтобы сделать множественное наследование нужно указать конструктору несколько прототипов, а свойство prototype одно.

Андрей Параничев 18.08.2009 15:45

B~Vladi,
А цепочка прототипов чем не множественное наследование, или что-то другое имеется в виду?
Кстати, я бы попросил вас воздержаться от мата, в том числе и скрытого. Не на скотном дворе, вроде как.

Dmitry A. Soshnikov 18.08.2009 15:46

B~Vladi, http://javascript.ru/forum/misc/3070...html#post16109

Если пишете под Мозиллу, можно задействовать __noSuchMethod__.

Kolyaj 18.08.2009 15:48

Цитата:

Сообщение от Андрей Параничев
А цепочка прототипов чем не множественное наследование, или что-то другое имеется в виду?

Ну это все-таки не множественное.

B~Vladi 18.08.2009 15:50

Цитата:

Сообщение от Kolyaj
Хитрая, как ты говоришь, функция ничего хитрого не делает.

Делает. Иначе я бы её понял:)
Цитата:

Сообщение от Kolyaj
свойство prototype одно

хм...

ну указать ему obj.prototype=Obj1.prototype+Obj2.prototype :D

А если серьёзно, то можно создать конструктор, который будет возвращать в прототип свойства других объектов... Бред?!

B~Vladi 18.08.2009 15:51

Цитата:

Сообщение от Андрей Параничев
А цепочка прототипов чем не множественное наследование

Имелось ввиду - объект наследует свойства от двух разных классов.

Kolyaj 18.08.2009 15:52

Цитата:

Сообщение от B~Vladi
Делает. Иначе я бы её понял

Я понимаю, не делает ничего хитрого :)

Цитата:

Сообщение от B~Vladi
то можно создать конструктор, который будет возвращать в прототип свойства других объектов... Бред?!

Цитата:

Сообщение от Kolyaj
Ну точнее совсем нечестную эмуляцию, типа копирования свойств, конечно, можно


B~Vladi 18.08.2009 15:54

Цитата:

Сообщение от Андрей Параничев
Кстати, я бы попросил вас воздержаться от мата, в том числе и скрытого.

Сори пжлст, но некоторые темы я по-другому назвать не могу, в силу своей воспитанности...

B~Vladi 18.08.2009 15:55

Цитата:

Сообщение от Kolyaj
Ну точнее совсем нечестную эмуляцию, типа копирования свойств, конечно, можно

Уверен, можно как-то енто обойти...
Цитата:

Сообщение от Kolyaj
Я понимаю, не делает ничего хитрого

Аха... запутался чёт я..:-?

Kolyaj 18.08.2009 15:58

Цитата:

Сообщение от B~Vladi
Уверен, можно как-то енто обойти...

Ну если придумаешь способ присвоить одному свойству несколько значений, то мы назовем этот язык "Квантовый JavaScript" :)

B~Vladi 18.08.2009 16:01

Цитата:

Сообщение от Kolyaj
Ну если придумаешь способ присвоить одному свойству несколько значений

Вот возьму и придумаю... Только не одному - несколько, а по-другому как нить...:p
JSprog, zzz и nemo мне в этом поможет :D

Kolyaj 18.08.2009 16:16

Цитата:

Сообщение от B~Vladi
JSprog, zzz и nemo

/^JSprog|zzz|nemo$/

B~Vladi 18.08.2009 16:23

Цитата:

Сообщение от Kolyaj
/^JSprog|zzz|nemo$/

Да, именно!

JSprog 18.08.2009 16:24

Цитата:

Сообщение от B~Vladi
Делает. Иначе я бы её понял

там не чего сложного)
Я не понял чё это меня опять в один ряд с этими нубами загребают!? Может и Билл Гейтс Я?
Можно сделать так чтобы все свойства копировались из функций-конструкторов в динамически созданные глобальные переменные(то есть сойства объекта window) с помощью встроеного метода для всех функций(его конешно написать надо) а оттуда в какой-нибудь объект? После чего эти переменные удалялись бы из window...

Kolyaj 18.08.2009 16:29

B~Vladi,
эх ты, даже /^JSprog|zzz|nemo$/ понимает. :)

JSprog 18.08.2009 16:30

Цитата:

Сообщение от Kolyaj
/^JSprog|zzz|nemo$/

Да пошли вы...

B~Vladi 18.08.2009 16:34

Я сделал это!!!
function MySperMegaFunction(){
  var men=getLastPost('http://www.javascript.ru/forum', 'userName');
  var flooderMan=replace(/^JSprog|zzz|nemo$/,men);
  if(!flooderMan) return;
  var query=sendRequest(flooderMan, 'help me, plz!');
  if(!query) sendRequest(flooderMan, 'fuck!');
  else query.createMagicPluralInheritance(object,[constructor1,constructor2,constructor3]);
}

Цитата:

Сообщение от Kolyaj
эх ты

:cray:

JSprog 18.08.2009 16:37

И что это работает?

B~Vladi 18.08.2009 16:38

Цитата:

Сообщение от JSprog
копировались из функций-конструкторов

Надо ведь знать все эти конструкторы...

А если сделать такую цепочку:

constructor_1.prototype->constructor_2.prototype->object

B~Vladi 18.08.2009 16:38

Цитата:

Сообщение от JSprog
И что это работает?

аха...:blink:

Octane 18.08.2009 16:39

Цитата:

Сообщение от JSprog
Да пошли вы...

Надо хитрее быть ;) раз уж решил много аккаунтов вести, одинаковый E-mail с пользователем zzz тебя выдает… у nemo, кстати, другой E-mail :)

B~Vladi 18.08.2009 16:40

Цитата:

Сообщение от JSprog
Может и Билл Гейтс Я?

Если это будет, так - я тебя найду с... :-E

JSprog 18.08.2009 16:41

Цитата:

Сообщение от B~Vladi
constructor_1.prototype->constructor_2.prototype->object

это не множественно наследование а обычная цепочка
Вот множественно наследование конструктор_1.prototype->object<-конструктор_2.prototype
Кирилица здесь не лищнея это позволяет EcmaScript v3!

JSprog 18.08.2009 16:42

Цитата:

Сообщение от Octane
, одинаковый E-mail с пользователем zzz тебя выдает

sheet
А домены то разные :)

Kolyaj 18.08.2009 16:44

Octane,
а-ха-ха, а я туда и не смотрел. Он просто вышел неудачно. Плюсики друг другу, внимание, стиль общения один и тот же.

А nemo хз, я уже не помню его стиль общения. :)

B~Vladi 18.08.2009 16:45

Цитата:

Сообщение от JSprog
это не множественно наследование

Ну и что... есть 2 конструктора... Если запрашивается свойство, а в объекте нет - ишет в прототипе, если там нет, ищет дальше... Чёт я уже не могу думать...

Цитата:

Сообщение от JSprog
sheet

Ааа... :lol:

Сам себя нубом обозвал... жесть, конечно...

JSprog 18.08.2009 16:46

Цитата:

Сообщение от B~Vladi
Ну и что... есть 2 конструктора... Если запрашивается свойство, а в объекте нет - ишет в прототипе, если там нет, ищет дальше..

Тут минус во второй конструкторо добавляются свойства первого а эт плохо!
Ну всё ушёл заново регатся и мэил фальщивый делать...

B~Vladi 18.08.2009 16:48

Цитата:

Сообщение от JSprog
во второй конструкторо добавляются свойства первого а эт плохо!

Вооооот... Нада так же, только без этого косяка:)

Kolyaj 18.08.2009 16:48

Не, ну реализовать кастомное прототипное наследование конечно можно, а потом прикрутить туда множественное. Но это уж слишком :)

JSprog 18.08.2009 16:49

Цитата:

Сообщение от B~Vladi
Вооооот... Нада так же, только без этого косяка

Я и говорю перебросить всё на window оттуда в object и с window delete
У тебя с query?

B~Vladi 18.08.2009 16:50

Цитата:

Сообщение от JSprog
Ну всё ушёл заново регатся

Мы тебя всё равно вычислим... Не сцы, братан... я тя запомнил;)

B~Vladi 18.08.2009 16:50

Цитата:

Сообщение от JSprog
У тебя с query?

Как правило, я всё пишу сам:)

B~Vladi 18.08.2009 16:51

Цитата:

Сообщение от Kolyaj
Не, ну реализовать кастомное прототипное наследование конечно можно, а потом прикрутить туда множественное.

Ну дк давайте попробуем, в самом деле...

B~Vladi 18.08.2009 16:53

Приветствуем нового пользователя, Zholoboff!!!

Здравствуй, дорогой:)

JSprog 18.08.2009 16:53

меня сдышит кто нибудь как вам такая схема
constructor 1-> window.vars <- constructor2
window.vars->object
delete window.vars

JSprog 18.08.2009 16:54

Цитата:

Сообщение от B~Vladi
Приветствуем нового пользователя, Zholoboff!!!

Эть не я)


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