我来自古典的oop背景,并试图掌握新的js模块化系统。无论如何,我仍然需要经典的东西,如私有和公共方法和变量,继承,重载与高级模块调用和类初始化(如经典构造函数或其他东西)。所以在SO社区的帮助下,我制作了这个模块模式示例:
var MODULE = (function(self) {
...
})(SUPER_MODULE)
完整示例:http://jsfiddle.net/ehe122e0/10/
所以现在我试图掌握AMD和CommonJS模块。有人可以将这个例子(我的意思是完整的jsfiddle例子)翻译成AMD和/或CommonJS吗?这真的很有帮助。
上面提到的使用这些格式的功能的任何工作示例都很有帮助。
答案 0 :(得分:1)
我所能说的只是阅读,阅读,阅读,然后阅读更多。这是一个好的开始:
“编写模块化Javascript”作者:Addy Osmani: http://addyosmani.com/writing-modular-js/
Kris Zyp的“AMD The Definite Source”: http://www.sitepen.com/blog/2012/06/25/amd-the-definitive-source/ RequireJS上的“为什么选择AMD”: http://requirejs.org/docs/whyamd.html还有更多,但是你会在模块化的道路上遇到它,祝你好运:)
答案 1 :(得分:-2)
如果您只在客户端(浏览器)编写javascript代码,则无法使用常见的js。所以amd是要走的路!您需要amdefine和requirejs才能实现这一目标。
但是,如果您还在服务器端使用node.js使用javascript,则会遇到一些常见的js。在这种情况下,我建议你使用一个真正的javascript OOP框架,能够加载常见的js和amd模块(为了在客户端和服务器端使用你的类)。例如,您可以尝试Danf(它将为您抽象出这种复杂性)。
请注意,您在jsfiddle中为您的类提供的模式并不是一个非常好的模式。只有一个原因是你为每个实例复制了类的方法(对你的记忆不好)。请尝试使用power of the prototype代替!