Сообщение от 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
А в примере с приватными членами при попытке перенести что то просто не будет работать - вылетит с ошибкой.