node Commonjs规范
1、Commonjs中关键字
(1)require:引入模块,参数是模块标识,若不在node_modules下,会去路径下查找。
(2)export是一个对象,它的任何输出都将作为一个对外暴露的公共API。
2、Nodejs的Commonjs实现
(1)Nodejs中,真正对外暴露对象是module.export,而export仅仅是一个变量,默认是绑定到module.export上,即module.export。
(2)真正Commonjs规范是没有module.export对象的。
3、示例代码
(1)
exports.age = 1
exports.name = 'test'
module.exports.sex = 'male'
输出:
说明exports对象上的属性和方法会自动绑定到module.export上。
(2)
exports.age = 1
module.exports.age = 2
or:
module.exports.age = 2
exports.age = 1
即:export和module.export上均有一个相同属性(方法)时,后面会覆盖前面属性,即后面定义为准。
(3)
module.exports.age = 1
module.exports.name = 'mfg'
module.exports= 'module'
or:
module.exports= 'module'
module.exports.age = 1
module.exports.name = 'mfg'
均输出:
说明module.export这个对象整体被重新赋值后,导出的就是重新赋值的内容,其他属性和方法不能对外暴露了。
4、强调
(1)module.export只能对外暴露一个对象。
(2)module.export和export引用的是同一个对象。module.export和export都存在的话,输出是module.export导出的结果。
(2)require只会加载一次,其他情况都在缓存中加载,不需要重新加载 。
作者:孟繁贵 Email:meng010387@126.com 期待共同进步!