class A {
static foo = () => 'foo';
bar = () => 'bar';
}
// Тоже самое что и
class A {
static foo = () => 'foo';
constructor() {
this.bar = () => 'bar';
}
}
class B {}
// Т.е этот метод не попадает в A.prototype, а в обычные свойства. Соотвественно A.prototype у тебя пустой (там только свойство "constructor")
// class A {
// static foo = () => 'foo';
//
// // Чтобы метод попал в прототип, а не записался как свойство, его нужно записывать в таком виде
// bar() {
// return 'bar'
// }
// }
// console.log(A.prototype)
Object.setPrototypeOf(B, A); // устанавливаем B.__proto__ = A, (тут все ок)
Object.setPrototypeOf(B.prototype, A.prototype); // Этой строчкой ты унаследуешь только Prototype, свойства из constructor в нем не хранятся. Ты унаследовал A.prototype, а он пустой (там только свойство "constructor").