老师,这里的super只传递了username,color属性为什么也被继承了
来源:4-5 选择练习
Elisha666
2022-04-09 16:56:10
1回答
好帮手慕久久
2022-04-09
同学你好,解答如下:
1、继承的关键字是extend,与super无关,不写super也可以实现继承:
// 父类 class Parent { color="red" constructor () { this.name = "张三" } } // 子类Son 继承了 父类 class Son extends Parent { } // 实例化子类 const s = new Son(); // 子类继承了父类的name、color属性 console.log(s.name); console.log(s.color);
2、如果子类想使用constructor方法拓展属性,那么需要写super:
// 父类 class Parent { // 父类需要传入参数username constructor (username) { this.name = username } } // 子类Son 继承了 父类 class Son extends Parent { // 子类中 写了constructor方法 constructor (username) { // 这里就必须写super super(username) // 在这里使用ths,新增了属性 this.age = 100 } } // 实例化子类 const s = new Son("zhang"); // 子类有父类的name属性 console.log(s.name);
所以super与继承没有直接关系,只是某些情况下,要写super才能拓展子类的属性、方法等。
祝学习愉快!
相似问题