1.
在a.js中
var b=require('./b.js'); console.log(b);
在b.js中
function add(x,y){ return x+y; } var result=add(100,1000); console.log(result);
执行a.js
当加载一个模块,默认被require()加载后,返回的是一个对象{}
2.
在b.js中
function add(x,y){ return x+y; } var result=add(100,1000); console.log(result); //return "hello";会有问题 //给module.exports符什么值,加载b.js模块的时候就会返回什么值 module.exports='hello world!';
执行a.js
给module.exports符什么值,加载b.js模块的时候就会返回什么值
3.
b.js
function add(x,y){ return x+y; } var result=add(100,1000); console.log(result); //return "hello";会有问题 //给module.exports符什么值,加载b.js模块的时候就会返回什么值 //module.exports='hello world!';//字符 //module.exports=32233;//数字 module.exports=function(x){ console.log(x); };
a.js
var b=require('./b.js'); console.log(b); b('hahaha');
执行a.js
module.exports后面可以符字符串,数值,还有函数
4.
那么我们还可以这样
b.js
function add(x,y){ return x+y; } var result=add(100,1000); console.log(result); //return "hello";会有问题 //给module.exports符什么值,加载b.js模块的时候就会返回什么值 //module.exports='hello world!';//字符 //module.exports=32233;//数字 /*module.exports=function(x){ console.log(x); };*/ module.exports.name='Jim'; module.exports.age=11; module.exports.show=function(){ console.log(this.name+this.age); }
a.js
var b=require('./b.js'); console.log(b.name); console.log(b.age); console.log(b.show);
b.show();
执行a.js
b.js也可以返回出这样的对象
总结:
所以,require用来加载模块,module.exports用来暴露模块