ECMAScript 5 is in final draft now,并包括与对象和原型相关的新功能。在搜索SO和谷歌的OOP设计模式时,我发现在JavaScript中有相当多不同的方法来“做OOP”(无论您如何定义OOP,从试图模仿经典的OOP到简单地尝试减少名称空间污染)。
相对于ECMAScript 5引领JavaScript世界的方向,哪种设计模式是最具前瞻性的?它的主要优势是什么?其中哪些是以前不可能实现的,或者实现起来一样好?
发布于 2009-06-18 16:12:14
我不认为ECMAScript 5会改变JavaScript中面向对象编程的格局。对于那些想要使用它的人来说,经典的OOP仍然是一个补充物。
在我看来,真正的故事是,当ECMAScript 4被废弃时,JavaScript和ActionScript出现了分歧,JavaScript将不会像ActionScript那样添加类。
我怀疑支持OOP的库(MooTools、Prototype等)大多数人会坚持他们正在做的事情,但也许他们可以在他们的实现中使用一些新的ECMAScript 5功能来巩固东西。
我们可能会继续看到像Joose和Class.js这样有趣的方法。
请记住,这将需要一段时间。我们仍然有两位数的人在使用IE6。因此,使用ECMAScript 5的第一个有用的地方可能是手机、Adobe AIR和JavaScript服务器,这些地方的浏览器(大部分或严格地说)是已知的。
John Resig在ECMAScript 5的object changes here上发表了一篇文章。
发布于 2009-09-15 15:28:07
我认为Object.create的标准化将允许更多的人毫无羞耻地使用底层的基于原型的OO。试图将"new Foo“伪经典语法隐藏在包装器后面会使代码变得混乱。
https://stackoverflow.com/questions/1012614
复制相似问题