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

标签 javascript oop namespaces module

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

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

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

提前致谢!

最佳答案

I've read some articles and book chapters on object oriented JS about how to simulate namespaces, ...

我不会在 JavaScript 中模拟经典的 OO 范例。您应该坚持使用 JavaScript 的自然特性。

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

您不需要命名空间。它们会导致不必要的间接访问并导致企业代码困惑。使用良好的模块模式,将您的函数和变量隐藏在闭包中。

尝试像 RequireJS 这样的模块加载器。你可以将你的模块隐藏在它们自己的文件和闭包中,让 RequireJS 为你做依赖注入(inject)魔术。

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

由于您的问题级别很高,我只是想提出一些想法和关键字,您可能希望通过 Google 搜索并继续阅读。也许经过一些研究、尝试和磨难之后,您可以回来询问更具体的问题。

关于javascript - 关于如何组织面向对象的 javascript 的最佳实践和示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4731510/

相关文章:

javascript - vue.js 在 Render 函数中为按钮添加事件监听器

javascript - 当选择任何文件时,文件上传按钮上的 jQuery 监听器

javascript - 在 JavaScript 中将方法作为参数传递

java - java中如何实现接口(interface)方法?

html - 您可以使用 id 和类名 css 选择器在另一个 namespace 中设置 XHTML 元素的样式吗?

javascript - 仅以mp3格式创建HTML/Javascript音频播放器

c# - builder 之间的继承——如何处理类型?

java - Java中如何快速判断一个方法是否被重写

PHP:程序代码 - 使用命名空间或闭包数组来避免污染全局命名空间?

php - 修补 Laravel 8,无法获得关系