记录module.exports 与 exports使用

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对象上,不要和导出属性值混在一起


猜你喜欢

转载自blog.csdn.net/android_gogogo/article/details/76893538
今日推荐