天天看點

nodejs 中 exports 和 module.exports 的關系

exports 與module.exports 是nodejs中用來導入導出子產品的指令,但是連兩者的關系比較複雜,這裡簡單總結一下
  • 每個子產品都有一個module對象;
  • module對象中有一個exports對象;
  • 我們可以把對象需要把導出的成員挂載到module.exports接口對象中;
  • 也就是:

    module.exports.xxx = xxx

    的方式;
  • node在每一個子產品中都提供了一個成員叫做:

    exports

    并且

    exports === module.exports

    結果是

    true

  • 是以對于

    module.exports.xxx = xxx

    可以簡化為

    exports.xxx === xxx

  • 當一個子產品需要導出單個成員的時候,必須使用

    module.exports === xxx

    的方式,不要使用

    exports === xxx

    ,因為每個子產品最終向外

    return

    的是

    module.exports

    ,而

    exports

    隻是一個引用;
  • 是以即使給

    exports = xx

    重新指派,也不會影響

    module.exports

    ,除了很暴力的直接把

    exports = module.exports

    ,直接重建立立引用關系

繼續閱讀