ES6中super()方法的使用和作用

在ES6中,super()方法用于调用父类的构造函数。它必须在子类的构造函数中调用super(),以便可以在子类中访问父类的属性和方法。
当调用super()时,它会返回一个指向父类的实例,因此可以使用super关键字来访问父类的成员。
例如,假设有一个父类叫做Animal,它有一个属性叫做name和一个方法叫做speak。然后我们创建一个子类叫做Dog,它继承自Animal类。在子类的构造函数中,我们可以使用super()来调用父类的构造函数,以便可以在子类中访问父类的属性和方法。

class Animal {
  constructor(name) {
    this.name = name;
  }
  speak() {
    console.log(`${this.name} makes a noise.`);
  }
}
class Dog extends Animal {
  constructor(name, breed) {
    super(name);
    this.breed = breed;
  }
  speak() {
    super.speak();
    console.log(`${this.name} is a ${this.breed}.`);
  }
}
const myDog = new Dog('Max', 'Labrador');
myDog.speak();

在上面的例子中,我们首先定义了一个Animal类,它有一个构造函数和一个speak方法。然后我们定义了一个Dog类,它继承自Animal类。在Dog类的构造函数中,我们调用了super(name),这样就将name传递给了父类的构造函数进行初始化。然后我们定义了一个speak方法,通过使用super.speak()来调用父类的speak方法,并在子类中添加了一些额外的功能。
通过使用super()方法,我们可以在子类中使用父类的属性和方法,从而实现了继承和扩展。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ES6 的类, `super()` 是一个特殊函数,它用于调用父类的构造函数。在子类,可以使用 `super()` 函数来调用父类的构造函数,从而在创建子类实例时初始化父类的属性。 在子类构造函数使用 `super()` 函数时,需要注意以下几点: 1. 必须先调用 `super()` 函数,然后才能访问 `this` 对象。因为在调用 `super()` 函数时,父类的构造函数会先执行,所以必须先调用 `super()` 函数来初始化父类的属性和方法,才能访问 `this` 对象。 2. 如果子类没有定义构造函数,则默认使用父类的构造函数,并自动调用 `super()` 函数。 3. 如果子类定义了构造函数,则必须在构造函数显式调用 `super()` 函数,否则会报错。 以下是一个示例代码,演示了如何在子类使用 `super()` 函数: ```javascript class Animal { constructor(name) { this.name = name; } speak() { console.log(`${this.name} makes a noise.`); } } class Dog extends Animal { constructor(name, breed) { super(name); // 调用父类的构造函数 this.breed = breed; } speak() { super.speak(); // 调用父类的方法 console.log(`${this.name} barks.`); } } let dog = new Dog('Rufus', 'Labrador Retriever'); dog.speak(); // 输出 "Rufus makes a noise." 和 "Rufus barks." ``` 在上面的代码,我们定义了一个 `Animal` 类和一个 `Dog` 类,`Dog` 类继承自 `Animal` 类。在 `Dog` 类的构造函数,我们使用 `super(name)` 调用父类 `Animal` 的构造函数,并在子类添加了一个新的属性 `breed`。在 `Dog` 类的 `speak()` 方法,我们首先调用父类的 `speak()` 方法,然后输出新的信息。最后,我们创建了一个 `Dog` 类的实例 `dog`,并调用了它的 `speak()` 方法,输出了两行信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值