我做了几年的 JavaScript 开发人员,我不时听说 JavaScript 非常棒,因为它是基于原型的。但是,在编写大型 JavaScript 应用程序时,我经常发现自己在模拟面向对象的行为。
一个问题可能是,正如 Douglas Crockford 所说,“JavaScript 本身与其原型性质存在冲突”(http://javascript.crockford.com/prototypal.html)。JavaScript 是我使用过的唯一一种基于原型的语言。
我也知道存在在下一个 EcmaScript 版本(http://wiki.ecmascript.org/doku.php?id=harmony:classes)中添加类的提议。
不要误会我的意思,我喜欢 JavaScript。我只是想了解基于原型的 OOP 有哪些优势(如果有的话)。