关于如何组织面向对象的javascript的最佳实践和示例?

时间:2011-01-19 03:39:02

标签: javascript oop namespaces module

我是JavaScript和编程的新手。我已经开始创建我的第一个Web应用程序,我想使用面向对象的方法重写它。我已经阅读了一些关于面向对象JS的文章和书籍章节,关于如何模拟命名空间,模块模式等等,但是我很难思考如何在对象内部组织我的代码,希望你可以帮我这个或者指出了一些示例或最佳实践的正确方向。

我正在考虑组织它有点像带有命名空间的jQuery(可能叫app)和我里面的所有应用程序函数,例如app.func1,app.func2,但是我有其他功能在其中使用就像实用工具一样,我希望他们有另一个名字,也许像app.util.func ...也是我的代码在我的应用程序中创建自定义对象,但我不知道在哪里放置它们和他们的正确我的命名空间内的构造函数。

有关如何组织面向对象的javascript的任何建议,想法,最佳实践,模板或示例?创建类似代码的简单库的示例非常棒。

提前致谢!

1 个答案:

答案 0 :(得分:7)

  

我已经阅读了有关如何模拟命名空间的面向对象JS的一些文章和书籍章节,......

我不会在JavaScript中模拟经典的OO范例。你应该坚持JavaScript的本质。

不要做经典继承。使用原型继承或根本不使用继承:组合/装饰看起来比JavaScript中的继承更好。

您不需要名称空间。它们导致不必要的间接性并导致企业代码混乱。使用一个好的模块模式来隐藏闭包内的函数和变量。

尝试像RequireJS这样的模块加载器。您可以将模块隐藏在自己的文件和闭包中,让RequireJS为您执行依赖注入魔法。

组织JS应用程序文件是一个非常广泛的主题。您可以通过使用MVC或MVP等范例,根据关注点分离来组织您的类。在项目组织方面,可以选择在Maven上构建应用程序(并遵循其约定)。

由于您的问题处于非常高的水平,我只是想提出一些您可能想要谷歌和阅读的想法和关键词。也许经过一些研究,试验和磨难,你可以回来询问更具体的问题。