首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ES6类语法不是为我们提供了“经典”继承吗?

ES6类语法不是为我们提供了“经典”继承吗?
EN

Stack Overflow用户
提问于 2019-06-12 21:04:33
回答 2查看 59关注 0票数 0

我知道在原型继承的情况下,对象通过原型链链接在一起。继承是对其他活动对象(实例化)的“引用”。

其中,与基于类的继承一样,类(模板)是用来灌输继承的。任何子类实例化都“拥有”父对象的实例。

但是Javascript如何不使用ES6语法实现“经典”继承呢?使用ES6类语法,您所做的实际上是创建模板。在实例化对象时,每次都会创建父对象的一个单独的活动实例。这不是经典的继承吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-12 21:15:48

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

也不存在“模板化”。属性不是事先声明的,实例的形状不是固定的。它们始终只是普通对象,它们的属性是在构造函数中创建的。

票数 3
EN

Stack Overflow用户

发布于 2019-06-12 21:11:08

是的,class旨在像其他语言中的类一样工作,因此它看起来像“经典继承”。在引擎盖下,它仍然是原型继承。

代码语言:javascript
运行
复制
class Animal {}
class Human {}

const me = new Human;

Object.setPrototypeOf(me, Animal.prototype);
console.log(me instanceof Animal); // true
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56562947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档