记录module.exports 与 exports使用

admin0条评论 37 次浏览

1 exports是module.exports的一个引用

2 require引用模块后,返回给调用者的是module.exports而不是exports

3 exports.xxx,相当于在导出对象上挂属性,该属性对调用模块直接可见

4 exports =相当于给exports对象重新赋值,调用模块不能访问exports对象及其属性

如果此模块是一个类,就应该直接赋值module.exports,这样调用者就是一个类构造器,可以直接new实例

1 exports暴露属性和函数:

exports.str = ‘a’;
exports.fn = function () { wx.showToast({
title: ‘good’,
})};

 

在使用时候: var m=require(“../../utils/demo.js”);直接m.str或m.fn()就能引用暴露的属性和方法

2 module.exports暴露对象

var handle;
handle = {
str:”hello_world”,
fn: function () {
wx.showToast({
title: ‘hello_world’,
})
}
}
module.exports = handle;

 

在使用时候:var m = require(“../../utils/hhh.js”);m对象就持有暴露的handle对象引用,用m.fn()调用函数,m.str引用str属性

注意:

1 对于要导出的属性,可以简单直接挂到exports对象上

2 对于类,为了直接使导出的内容作为类的构造器可以让调用者使用new操作符创建实例对象,应该把构造函数挂到module.exports对象上,不要和导出属性值混在一起