class A {
constructor() {
this.name = 'A';
}
print() {
console.log('name:' + this.name);
}
}
class B extends A {
}
let b = new B();
b.print();
// name:A
class A{
print(){
console.log(‘A’);
}
}
class B{
print(){
console.log(‘B’);
}
}
function get(type) {
return type===‘A’?A:B;
}
function fac(type) {
return class C extends get(type){
constructor(){
super();
console.log(‘i am c’);
}
}
}
let T=fac(‘A’);
let t=new T();
t.print();
@xcatliu 掀桌~~~就是想在运行时去继承啊。。。。。。。动态的让B继承A。。。。。
class A{ print(){ console.log(‘A’); } } class B{ print(){ console.log(‘B’); } } function get(type) { return type===‘A’?A:B; } function fac(type) { return class C extends get(type){ constructor(){ super(); console.log(‘i am c’); } } } let T=fac(‘A’); let t=new T(); t.print();
不改变A B是做不到,你就算是继承,你也要手动调用super()
@AnzerWall 你看2楼的用extends的方式,B里就没显式调用super啊 class B extends A { }
@rwing 😝 一开始没看清题意。
运行时继承?即使可以做到也最好不要这么干吧。这样整个 oop 的结构就乱套了。
原型链的可以吧