对象,类,模块的概念可以让系统更清晰,亦能增强代码的重用性。目前 JavaScript 规范本身并不支持类或模块,正在制定中的 ECMAScript 6th Edition 将会纳入类,模块的概念,不过不知会是何年马月的事,毕竟这不能像 JDK 升级那么干脆。
还有种办法来写模块化的 JavaScript 就是使用微软的 TypeScript 或是 Google 的 Dart,它们是面向对象的编程语言,能直接编译成兼容的 JavaScript 代码,有条件的可以去尝试。
回到现实来,就现有的 JavaScript 规范怎么去模块化。众所周知,JavaScript 中函数是第一等公民,所以我们早先是这样使用函数来声明对象的:
1. 原始写法(比直接调用函数显得高级些):
1 2 3 4 5 6 7 8 9 10 |
function Module(){ this.count = 10; this.foo = function(x){ return x+1; } } var m1 = new Module(); console.log(m1.count); console.log(m1.foo(3)); |