Вы были близки: вы можете заменить метод через B
prototype
:
class B { c() { console.log('B') ;} }
const b = new B();
B.prototype.c = () => { console.log("C"); }
b.c() // prints C
Вы не можете просто заменить весь прототип, вам действительно нужно изменить свойства прототипа:
class B { c() { console.log('B') ;} }
class C { c() { console.log('C') ;} }
const b = new B();
B.prototype = C.prototype;
b.c() // This still prints `B`