1

ECMAScript 5 现在处于最终草案中,包括与对象和原型相关的新功能。在围绕 SO 和 Google 寻找 OOP 设计模式时,我发现在 JavaScript 中有很多不同的“做 OOP”的方式(但是你可以定义 OOP,从尝试模拟经典 OOP 到简单地尝试减少命名空间污染) .

与 ECMAScript 5 引领 JavaScript 世界的方向相比,哪种设计模式最具前瞻性?它的主要优势是什么?其中哪些是不可能实现的或以前无法实现的?

4

2 回答 2

3

我不认为 ECMAScript 5 改变了 JavaScript 中 OOP 的格局。对于想要使用它的人来说,经典的 OOP 仍然是一个补充。

在我看来,真实的故事是,当 ECMAScript 4 被废弃时,JavaScript 和 ActionScript 出现了分歧,JavaScript 不会像 ActionScript 那样添加类。

我怀疑支持 OOP 的库(MooTools、Prototype 等)大多会坚持他们正在做的事情,但也许他们可以在他们的实现中使用一些新的 ECMAScript 5 特性来巩固事情。

我们可能会继续看到JooseClass.js等有趣的方法。

请记住,这需要一段时间。我们仍然有两位数的人在使用 IE6。因此,使用 ECMAScript 5 的第一个有用的地方可能是手机、Adobe AIR 和 JavaScript 服务器,在这些服务器上(大部分或严格地)浏览器是已知的。

John Resig 在这里发表了一篇关于 ECMAScript 5 的对象更改的文章。

于 2009-06-18T16:12:14.350 回答
1

我认为 Object.create 的标准化将允许更多人使用底层基于原型的 OO 而不感到羞耻。试图在包装器后面隐藏“新 Foo”伪经典语法会使代码混乱。

于 2009-09-15T15:28:07.120 回答