gpt4 book ai didi

javascript - 经典继承与原型(prototype)继承的区别

转载 作者:数据小太阳 更新时间:2023-10-29 04:40:05 24 4
gpt4 key购买 nike

我在这里找到了这个定义:https://medium.com/javascript-scene/10-interview-questions-every-javascript-developer-should-know-6fa6bdf5ad95#.y0nc8kx34

你不觉得很尴尬吗?这个定义有意义吗?对我来说,在这两种情况下都使用了构造函数(使用 new 可以覆盖返回的所有对象)并且在这两种情况下都有原型(prototype)继承。我是不是遗漏了什么或者上面的定义不是很准确?

*3。经典继承和原型(prototype)继承有什么区别?

类继承:实例继承类(如蓝图 类的描述),并创建子类关系:层次类分类法。实例通常通过带有 new 关键字的构造函数实例化。类继承可以使用也可以不使用 ES6 中的 class 关键字。

原型(prototype)继承:实例直接从其他对象继承。实例通常通过工厂函数或 Object.create() 实例化。实例可以由许多不同的对象组成,允许简单的选择性继承。*

最佳答案

“类”和“原型(prototype)”之间存在接口(interface)语义的区别。

界面差异

如何在代码中使用它。文章中很好地解释了区别和好处。

语义差异

无论在javascript中如何实现,我们都可以使用ES6-class来强调我们的对象具有“类”的含义。最初“类”的意思是我们可以分类将一些对象归为一组或另一组对象。参见集合论中的定义:https://en.wikipedia.org/wiki/Class_(set_theory) .

此外,类是抽象的东西,在我们创建实例之前不存在。

如果我们谈论类继承 - 很容易理解一些类可以是另一个创建层次结构的类的子类的抽象。

Prototype 是一些对象集中的示例或代表性对象。在这种情况下,我们使用现有原型(prototype)创建新对象(创建克隆或链接)。它们也可以是新对象的原型(prototype)。

当其他程序员阅读您的代码并查看您选择的内容时 - 原型(prototype),他们期望这些语义。

关于javascript - 经典继承与原型(prototype)继承的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34707632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com