ES12 中的类继承方式更加灵活

ES6 中引入了类(class)这一概念,使得 JavaScript 的面向对象编程更加规范化。而 ES12 进一步增强了类的功能,其中最重要的扩展是关于类继承的灵活性。

简单继承

在 ES6 中,我们可以使用 extends 关键字来实现简单的类继承,代码如下:

在这个例子中,我们定义了 AnimalDog 两个类,其中 Dog 继承了 Animal。在 Dogconstructor 中,我们使用 super 来调用父类(即 Animal)的 constructor 方法,从而设置该实例的 name 属性。我们还重写了父类的 speak 方法,在控制台输出“某某 barks.” 的字符串。

多重继承

ES12 扩展了多重继承的功能,让我们可以更加灵活地使用类。具体来说,ES12 引入了 mixin(混入)这一概念,可以将多个类的属性和方法合并到一个类中。

下面是一个简单的示例代码:

在这个例子中,我们定义了 AnimalSwimmableFlying 三个类,它们分别表示动物、游泳和飞行。注意到这三个类都没有定义 name 属性,因此我们需要在子类中继承该属性。

我们定义了一个 FlyingFish 类,继承自 Animal。然后使用 Object.assign 方法将 SwimmableFlying 类的所有属性和方法都合并到 FlyingFish 中,给它赋予了游泳和飞行功能。

最后我们创建了一个 FlyingFish 实例,可以看到它可以执行动物的 speak 方法、游泳、飞行,具有多重继承的特性。

总结

ES12 中的类继承方式更加灵活,支持多重继承和混入等特性。在实际开发中,应当根据具体情况选择不同的继承方式,以使代码更加易读、易维护、易扩展。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65473fcf7d4982a6eb19dde4


纠错
反馈