您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Javascript是一种基于原型的语言,这意味着什么?

Javascript是一种基于原型的语言,这意味着什么?

是一种面向对象的 。Javascript是使用原型继承的仅有的[主流]面向对象语言之一。几乎所有其他面向对象的语言都是经典的。

在 ,程序员编写一个类,该类定义一个对象。可以从同一类中实例化多个对象,因此您将代码放在一个位置,该代码描述了程序中的多个对象。然后可以将类组织成一个层次结构,以促进代码重用。更通用的代码存储在较高级别的类中,较低级别的类从中继承。这意味着一个对象正在与同一类的其他对象及其父类共享代码

在 形式中,对象 从其他对象 。关于类的所有业务都消失了。如果需要对象,则只需编写一个对象。但是代码重用仍然是很有价值的事情,因此允许将对象按层次结构链接在一起。在javascript中,每个对象都有指向创建它的对象的秘密链接,形成一个链。当要求对象提供其不具有的属性时,将询问其父对象…一直在链上,直到找到该属性或到达根对象为止。

JavaScript中的每个函数(本身就是对象)实际上都有一个称为“原型”的成员,该成员负责在请求对象时提供值。具有此成员可以使构造函数机制(通过该机制从函数构造对象)起作用。向功能对象的原型添加属性将使其对构造的对象以及从该对象继承的所有对象可用。

关于原型继承为何是代码重用的一种有利形式,可能并没有一个严格的规则。代码重用本身是有利的,而原型继承是实现它的明智方式。您可能会争辩说,原型继承是代码重用的相当 ,并且代码可以 大量重用。但是古典语言当然也可以做到这一点。

@Andrew Hedges 提出了一个很好的观点,那就是实际上有许多原型语言。值得一提的是,其他的存在,但也没有一个接近主流。NewtonScript似乎有一段时间受到关注,但因其平台而死。也可以通过添加原型功能来扩展某些现代语言。

javascript 2022/1/1 18:17:39 有438人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶