Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   множественное наследование в JS (https://javascript.ru/forum/misc/53839-mnozhestvennoe-nasledovanie-v-js.html)

kotlov-net 20.02.2015 18:07

множественное наследование в JS
 
Сразу предупреждаю: энтерпрайзное быдло ничего не поймет в этой теме
...
имплементация тривиальна. Надо просто забыть о нативных объектах, и исполльзовать вместо них ф-ции

ga=1; gb=2; gc=3; gd=4

proto_o1=function(arg){
 return({c: gc, d: gd})[arg]
}

proto_o2=function(arg){
 return ({g: 10})[arg]
}

o=function(arg){
 return ({a: ga, b: gb})[arg]||proto_o1(arg)||proto_o2(arg)
}

console.log(o("a"), o("d"))

ga=10; gb=20; gc=30; gd=40

console.log(o("a"), o("d"), o("g"))

//out:
//  1 4
//  10 40 10


тут «объект» o наследует от proto_o1 и proto_o2 в чистейшем прототинпо-ориентированном стиле, иными словами, Ъ.

В даном примере еще один бонус: динамическое связывание, что видно из последней строчки. Для лексического можно использовать замыкания, естественно.

tsigel 20.02.2015 18:23

Очередной инстанс "Krutoy"?

Множественное наследование называется миксинами. И когда вы делитесь опытом/фичей/чем-то с людьми - старайтесь давать нормальные имена переменным. И кстати вы забыли написать "var".

kotlov-net 20.02.2015 18:26

tsigel,
это в недоязычках , видимо, так, а в прототипно-ориентированных языках множественное наследование реализуется делегированием.

kotlov-net 20.02.2015 18:29

Цитата:

Сообщение от tsigel
Множественное наследование называется миксинами

Кстати, неверно приравнивать миксины к множественому наследованию, это один из способов(довольно кривой, кстати) реализации оного, но никак ни "то же самое". По Вашей логике, комп===ос

Safort 20.02.2015 18:32

tsigel,
Цитата:

Очередной инстанс "Krutoy"?
Ага. Интересно, как он наследует себя от себя: с помощью прототипов или уже на классы перешёл? :)

tsigel 20.02.2015 18:33

Цитата:

Сообщение от Safort
Ага. Интересно, как он наследует себя от себя: с помощью прототипов или уже на классы перешёл?

:lol:

kotlov-net 20.02.2015 18:37

Safort,
Цитата:

Сообщение от Safort
наследует себя от себя

Не понял иронии. А как наследуют синглтоны?

Safort 20.02.2015 18:40

kotlov-net,
а, так ты синглтон? Тогда прошу прощения.

kotlov-net 20.02.2015 18:43

Safort,
По существу есть мысли?

ruslan_mart 21.02.2015 14:22

kotlov-net, снова ты, бан.


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