【发布时间】:2016-05-13 16:33:17
【问题描述】:
我不断听到 JavaScript 之所以如此优秀的原因之一是因为它没有类。相反,它有一个神奇的东西,叫做原型继承。
纠正我如果我错了,但据我了解,Object.prototype 和 Object.prototype.constructor(运行一些本机代码)是 Javascript 中的两个基本实体。这和一堂课有什么区别?
如果在使用 newoperator 调用时没有用于创建对象的“蓝图”,那么每个函数都需要有 .prototype 吗?
【问题讨论】:
-
好问题。您所描述的正是 TypeScript 如何获取 ES6 类并将它们编译为 ES5。他们是我们目前最好的选择。如果你看输出的 JS classes 构造函数对象变成
object.prototype.something -
你在哪里“一直听到”这个?这些都是奇怪的说法。
-
...无论如何,原型不是蓝图。它是用于查找原始对象上不存在的属性的对象。原型对象可以并且经常在许多不同对象之间共享。
-
任何人都会笼统地说 JS 是一门优秀的语言,因为它的原型继承(或者因为任何原因),并且有什么神奇之处它。
标签: javascript prototype new-operator ecmascript-5 prototypal-inheritance