我来自面向对象语言类,最近我一直在学习那些奇特的动态语言(JavaScript,Python和Lua),并且我想了解一些有关如何在这些语言中使用OO的技巧。了解这种方法的缺陷和缺点以及与传统OO相比的优势将非常有用。
我得到的一般想法是,基于原型(prototype)的OO基本上是用对象编程的,但是没有关于如何使用它们的标准,而在普通的OO中,有固定的预定义方式来制造和使用对象。
总而言之,这种方法的优点,缺点和丑陋之处是什么?
最佳答案
基于原型(prototype)的OO不适合进行静态类型检查,有些人可能认为这是一件坏事或丑陋的事情。基于原型(prototype)的OO确实具有创建新对象的标准方法,您可以克隆并修改现有对象。您还可以建立工厂等。
我认为人们最喜欢(“好”)的是基于原型(prototype)的OO非常轻巧灵活,提供了极高的功率重量比。
有关如何使用基于原型(prototype)的OO 的技巧,一个很好的起点是The Power of Simplicity上的原始Self论文。
关于javascript - 基于原型(prototype)的对象方向。黄金三镖客?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/385403/