简单的来说他们的作用都是:让两个JS文件之间可以进行数据交流和使用
Greeter.js 与 main.js 在同一目录下,main.js 要引用 Greeter.js 中的方法
①使用 module.exports 实现不同JS文件的数据调用
Greeter.js:
function a(a){
console.log(a);;
}
function b(a){
console.log(a);;
}
module.exports=a;
module.exports.k=b;
main.js:
var greeter = require('./Greeter.js');
greeter("hello"); //console.log("hello")
greeter.k("good"); //console.log("good")
②使用 exports 实现不同JS文件的数据调用
Greeter.js:
//Greeter.js
var a="hello";
var b={
"a":1
};
function c(a){
console.log(a);;
}
exports.a=a;
exports.b=b;
exports.c=c;
main.js:
//main.js
var greeter = require('./Greeter.js');
console.log(greeter.a);
console.log(greeter.b.a);
greeter.c("good");
总结:
-
对于要导出的属性,可以简单直接挂到
exports
对象上 -
对于类,为了直接使导出的内容作为类的构造器可以让调用者使用new操作符创建实例对象,应该把构造函数挂到
module.exports
对象上,不要和导出属性值混在一起(如下)
Greeter.js:
//Greeter.js
//定义一个类
function fon(a,b){
this.a=a;
this.b=b;
//在类中定义一个方法
this.add=function(){
console.log(this.a,this.b);
}
}
module.exports=fon;
main.js:
//main.js
var greeter = require('./Greeter.js');
var n =new greeter("hello","word");
n.add(); //console.log("hello word")
-
如果Module.exports
已经具备一些属性和方法,那么exports收集来的信息将被忽略,所以一个JS文件中不能同时出现他们两个
如果您有什么不明白的地方或其它想问的可以关注我的公众号,给我留言,我会尽可能的帮您解决遇到的问题
ps:如果您对摄影感兴趣,也可以关注我的公众号,不定时会分享自己的摄影经验和调色设定,欢迎交流,哈哈哈哈哈