【发布时间】:2016-07-30 19:48:35
【问题描述】:
在过去的一周里,我一直在尝试了解基于类的继承和原型继承之间的区别。在使用过 PHP 和 JavaScript 之后,我希望能很快掌握这一点,但我无法完全理解这一点——我总觉得我错过了一些东西。
我了解到,类就像定义对象特征的蓝图。当一个类被实例化时,根据蓝图构造一个对象。当继承发挥作用时,只能完全采用蓝图,但可以覆盖方法。
但是什么是原型呢?它不是也类似蓝图,但已经实现(因此名称为“原型”)?那么通过继承,你只能指向已经存在的函数?
以下内容可能看起来很愚蠢,但这就是我试图理解事物的方式。
在更人性化的方面:一个类可以被视为架构计划,一旦它被实例化,小工人就开始根据该计划构建一个对象。为了继承某些东西,除了新的细节(可能会替换现有的细节)之外,还要重新构建完整的计划。
使用原型,工人开始复制已经存在的对象并开始查看它的主要特征(存储在称为原型的东西上)。要从另一个对象继承,他们只需在某处放置一个标志,上面写着“您正在寻找函数 X?请这样——注意对象之间的间隙”。
这种区分正确吗?
【问题讨论】:
-
实际上,在原型继承中,工人并没有复制任何东西——他们只是张贴了标志。
标签: javascript prototype