class类中的super
时间: 2024-06-14 12:05:09 浏览: 104
在class类中,super关键字有两种用法:
1. 在子类的构造函数中使用super(),表示调用父类的构造函数。这样可以继承父类的属性和方法,并且可以在子类中添加自己的属性和方法。在这种情况下,super()相当于父类的构造函数A.prototype.constructor.call(this)。
范例:
```javascript
class A {
constructor() {
this.x = 1;
}
}
class B extends A {
constructor() {
super(); // 调用父类的构造函数
console.log(this.x); // 输出:1
}
}
let b = new B();
```
2. 在子类的普通方法中使用super,表示调用父类的方法。在这种情况下,super内部的this指向当前的子类实例,所以如果通过super对某个属性进行赋值,这时super就是this,赋值的属性会变成子类实例的属性。
范例:
```javascript
class A {
constructor() {
this.x = 1;
}
}
class B extends A {
constructor() {
super();
this.x = 2;
super.x = 3; // super.x 等同于 this.x
console.log(super.x); // 输出:undefined (super.x 等同于 A.prototype.x)
console.log(this.x); // 输出:3
}
}
let b = new B();
```
阅读全文