随着网站逐渐成为“互联网应用”,网页中嵌入的Javascript代码变得越来越大、越来越复杂。网页越来越像桌面程序,需要一个团队一起工作,进度管理,单元测试等等……开发者不得不用软件工程的方法来管理网页的业务逻辑。Javascript模块化编程已经成为一种迫切的需求。从CommonJS来讲,CommonJS团队定义了模块格式来解决JavaScript作用域问题,保证每个模块都在自己的命名空间下执行。根据CommonJS规范,每个文件都是一个具有自己范围的模块。文件中定义的变量、函数和类都是私有的,对其他文件不可见。CommonJS规范规定,在每个模块内部,模块变量代表当前模块。这个变量是一个对象,它的exports属性(即module.exports)是一个外部接口。加载模块实际上是加载模块的module.exports属性。CommonJS提供了两个工具来实现模块之间的依赖关系:require()用于导入当前作用域中已有的模块模块对象,用于从当前作用域中导出一些东西,那么我们先来个Helloworld的小栗子来尝试一下!写一个简单的JavaScript模块,新建一个项目文件夹,虽然项目很小。..命名为commonjs,在里面新建两个JavaScript文件,分别命名为world.js和salute.js,代码如下://salute.jsgreetingvarMySalute="Hello";module.exports=MySalute;/*Note上面和下面分别写在2个文件中js文件*///world.jsvarMySalute=require("./salute");varResult=MySalute+"world!";console.log(Result);然后我新懵懂的新建了一个demo.html,(想用浏览器打开看看长什么样子)内容如下:
