Показать сообщение отдельно
  #9 (permalink)  
Старый 18.09.2021, 10:29
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Сообщение от Aetae
Так можно, и функция намертво привяжется к A:
Я бы не назвал это привязкой. Привязкой можно считать ситуацию, когда функцию переносят в другой класс, а она продолжает работать так, как будто она в исходном
Ну типа
class P1 {
    out () {console.log ('P1')}
}

class P2 {
    out () {console.log ('P2')}
}

class P3 {
    out () {console.log ('P3')}
}

class A extends P1{
    out () {super.out()}
}

let a = new A()
a.out()     // P1

class B extends P2{
    out = a.out    // перенесли так
}

let b = new B()
b.out()      //P1

class C extends P3{
}

C.prototype.out = A.prototype.out  // или так

let c = new C()
c.out()      //P1


А в примере с приватными членами при попытке перенести что то просто не будет работать - вылетит с ошибкой.
Ответить с цитированием