ES6 Class 语法不是给我们提供了 "classical" 继承吗?

Doesn't ES6 Class Syntax provide us with "classical" inheritance?

我了解在原型继承的情况下,对象通过原型链链接在一起。继承是对其他一些活动对象(实例化)的 "REFERENCE"。

在基于 class 的继承的情况下,classes(模板)用于灌输继承。任何子class实例化"POSSESSES"父对象的实例。

但是Javascript怎么没有用ES6语法实现"classical"继承呢?使用 ES6 class 语法,您所做的实际上是创建模板。在实例化一个对象时,每次都会创建一个单独的父实例。这不是class真正的继承吗?

是的,class 的目的是在其他语言中表现得像 类,因此它看起来像 "classical inheritance"。不过在幕后它仍然是原型继承。

class Animal {}
class Human {}

const me = new Human;

Object.setPrototypeOf(me, Animal.prototype);
console.log(me instanceof Animal); // true

不,ES6 class 语法不实现 classical 继承。 class 的方法仍然放置在通过原型继承链接到实例的 .prototype 对象上。

也没有 "templating" 进行。属性不预先声明,实例的形状不固定。它们一直都是普通对象,它们的属性是在构造函数中创建的。