为什么在javascript中使用基于类的OOP样式继承?

Nor*_*rtl 5 javascript oop inheritance prototypal-inheritance

如果我不完全错误,javascript中的每个框架/库/方法都会模仿基于类的OOP样式继承.原因似乎是人们认为基于类的OOP继承更容易理解并且大多数程序员都知道OOP.

根据我的经验,我没有找到任何一种观点的证据.我认为javascript原型继承很好(我怀疑强制另一种语言的有用性而不是它构建的语言).我遇到的大多数开发人员在经典OOP中都没有那么好.那么选择经典OOP样式继承而不是原型继承的原因是什么?

Gre*_*reg 6

我认为答案在你的问题中 - 大多数程序员对基于类的OOP比基于原型的更为熟悉.

事实上,我甚至说大多数人都不相信没有课程就可以拥有对象.


Jav*_*ier 6

请注意,即使您正在争论基于原型的OOP,您也称其为"原型",而基于类的OOP仅称为"OOP".所以,你自己也会受到这种偏见的困扰,认为OOP => classes,prototypes =>其他的东西.

并且由于大多数人认为OOP是正确的方式,无论问题如何,原型必须低劣.

所以,回答你的问题,有两个因素:

  1. 错误的定义:"OOP => classes"
    • 宣传:"它必须是OOP,否则你就不值得"

因为你仍然受到第一个的限制,你试着解释原型是第二个的例外.更容易纠正它们:

  1. 有很多方法可以做对象,类只是静态语言最容易的方法.大多数人都被教导用静态语言编程,并且大多数人尝试使用任何语言,就像他们学到的第一语言一样.

    • 有很多方法可以构建一个编程解决方案,OOP在某些方面很棒而在其他方面很糟糕.

  • 我所说的是基于原型的继承就像基于类继承的OOP一样.调用OOP而不是另一个强化了原型"不够"的想法,即使你不相信,你选择的单词也不利于你. (2认同)