Size: a a a

2021 January 28

К

Константин in javascript_ru
синтетики все не трастед
источник

К

Константин in javascript_ru
Danila Nikonets
странно, у меня работает на сайте
вот, у тебя есть трастед инпут - клик по кнопке
источник

DM

Denys Mikhalenko in javascript_ru
Вот кстати, ща разговаривал на тему multiple inheritance
источник

DM

Denys Mikhalenko in javascript_ru
Как вы думаете, можно было бы решить the diamon problem, если бы имплементация позволяла указать, у какого родителя я хочу вызвать метод?
источник

DM

Denys Mikhalenko in javascript_ru
Ну вроде
class D extends B, C {
 foo() {
   B.foo()
   // вместо super.foo()
 }
}
источник

DM

Denys Mikhalenko in javascript_ru
(условно)
источник

DM

Denys Mikhalenko in javascript_ru
хотя правда остается проблема с конфликтующими методами, которые ты не хочешь (или не можешь) перекрыть
источник

К

Константин in javascript_ru
Да, в JS типа да, если явно указать прототип
источник

К

Константин in javascript_ru
но а как с неявным вызовом?
источник

К

Константин in javascript_ru
когда скрыто за интерфейсом, как это решать? никак
источник

DM

Denys Mikhalenko in javascript_ru
Я вот тоже про это подумал
источник

К

Константин in javascript_ru
что будет если B тоже множественно наследован?
источник

К

Константин in javascript_ru
и там тоже foo такой, мутный
источник

DM

Denys Mikhalenko in javascript_ru
Ну в js такой номер не пройдет из-за отсутствия фазы компиляции
источник

DM

Denys Mikhalenko in javascript_ru
А в компилируемых языках можно было бы ловить конфликты и не собираться
источник

К

Константин in javascript_ru
на фазе компиляции там проблема с таблицами
источник

DM

Denys Mikhalenko in javascript_ru
С какими таблицами?
источник

К

Константин in javascript_ru
vTable
источник

К

Константин in javascript_ru
которые методы лукапят
источник

К

Константин in javascript_ru
там же по оффсетам
источник