子构造函数继承父构造函数(es6)

本文详细介绍了在ECMAScript 6(ES6)中如何使用`extends`关键字和`super`关键字来确保子构造函数继承父构造函数的属性和方法。通过实例解析了子类构造函数如何调用父类构造函数,以及如何在子类中正确地扩展和重写父类的功能。
摘要由CSDN通过智能技术生成
// es6的属性有三种: 静态属性,私有属性,公有属性
class Person {
   
  // 静态属性/方法的定义 这些静态属性/方法只可以通过类来获取
  // 类的实例获取不到
  // es7可以直接定义静态属性
  // static age = 123;
  // es6只支持定义静态方法
  static age() {
   
    return 123;
  }

  /* es7定义的私有属性 */
  // year 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来详细讲解一下。 1. 构造函数继承 构造函数继承是一种通过调用构造函数继承类属性和方法的方式。在类中通过调用构造函数来实现继承类的实例会具有类的属性和方法。具体实现方式如下: ```javascript function Parent(name) { this.name = name; } Parent.prototype.sayName = function() { console.log(this.name); } function Child(name, age) { Parent.call(this, name); this.age = age; } var child = new Child('Tom', 18); console.log(child.name); // Tom console.log(child.age); // 18 ``` 在上面的代码中,我们定义了一个类 Parent 和一个类 Child,Child 通过在构造函数中调用 Parent 来实现继承。这种方式的缺点是无法继承原型上的方法。 2. 混合继承 混合继承是一种通过同时使用构造函数继承原型继承继承类属性和方法的方式。在类中既通过调用构造函数继承类属性,又通过将类的原型指向类的实例来继承原型上的方法。具体实现方式如下: ```javascript function Parent(name) { this.name = name; } Parent.prototype.sayName = function() { console.log(this.name); } function Child(name, age) { Parent.call(this, name); this.age = age; } Child.prototype = new Parent(); Child.prototype.constructor = Child; var child = new Child('Tom', 18); console.log(child.name); // Tom console.log(child.age); // 18 child.sayName(); // Tom ``` 在上面的代码中,我们定义了一个类 Parent 和一个类 Child,Child 通过同时使用构造函数继承原型继承来实现继承。这种方式的优点是既可以继承类的属性,也可以继承原型上的方法。 3. ES6 继承 ES6 继承是一种通过使用 class 和 extends 关键字来继承类属性和方法的方式。在类中使用 extends 关键字继承类,类的实例会具有类的属性和方法。具体实现方式如下: ```javascript class Parent { constructor(name) { this.name = name; } sayName() { console.log(this.name); } } class Child extends Parent { constructor(name, age) { super(name); this.age = age; } } var child = new Child('Tom', 18); console.log(child.name); // Tom console.log(child.age); // 18 child.sayName(); // Tom ``` 在上面的代码中,我们使用 class 和 extends 来定义类 Parent 和类 Child,Child 通过 extends 关键字继承 Parent 来实现继承。这种方式是 ES6 中推荐的继承方式,具有语法简洁、易于理解等优点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值