zoukankan      html  css  js  c++  java
  • Node.js中的exports与module.exports的区分

    1. module应该是require方法中,上下文中的对象

    2. exports对象应该是上下文中引用module.exports的新对象

    3. exports.a = xxx 会将修改更新到module.exports对象中

    4. exports = xxx 直接改变了 exports的指向

    上面这4条揭示了这两个对象的本质。也就是说exports指向module.exports. 如果写exports.a =1, 意味着module.exports.a也等于1。

    但如果写成exports=function A(){}, 这个时候, module.exports与exports指的是不同的对象了。这个时候用require引入包括前面这个语句的js文件时,就不能访问exports所指向的function A. 因为require返回的是module.exports所指向的对象。如果想能被引用到也可以写成:module.exports=exports=function A(){};知道这一点的话,如果你想返回function A()就要写成module.exports=function A(){}; 要不然就老老实实地写成exports.A=function A(){}. 只是这两种写法在require之后调用写法不一样而已。前面那种直接var A = require('./A.js'); A()即可。后面的var A = require('./A.js'); A.A()才可以。

    参考

    http://www.cnblogs.com/vincedotnet/p/3439975.html

    http://stackoverflow.com/questions/7137397/module-exports-vs-exports-in-nodejs/7142924#7142924

  • 相关阅读:
    4.23上机练习
    4.17java作业
    4.16java作业
    leetcode 189
    leetcode 172
    leetcode 171
    leetcode 169
    win10内网外网智能访问
    leetcode 168
    leetcode 165
  • 原文地址:https://www.cnblogs.com/sdikerdong/p/3617921.html
Copyright © 2011-2022 走看看