super() 返回的是 this
console.log(super(props)) 返回的是this
super挂载的属性
- 当在实例方法里,super指向父类的原型对象
class Parent{c=1}Parent.prototype.d = 1class Child extends Parent{log=()=>{// 这里的super执行 Parent.prototypeconsole.log('super.c',super.c)console.log('super.d',super.d)}}const child = new Child();console.log(child);child.log(); //undefind
静态方法中的super指向父类 ```javascript class Parent{ c=1 } Parent.prototype.d = 1 Parent.e=3 class Child extends Parent{ log=()=>{ // 这里的super执行 Parent.prototype
} static log_s = ()=>{ console.log(‘super.c’,super.c) console.log(‘super.d’,super.d)
console.log(super.e); //3
} }
child.log_s();
- ES6 规定,通过super调用父类原型对象上的方法时,方法内部的this指向子类。> 实际上执行的是 super.sport.call(this);```javascriptclass Parent{a= 1log (){console.log(this.a)}}new Parent()class Child extends Parent{a = 2clog = ()=>{super.log()}}new Child().clog();
