zoukankan      html  css  js  c++  java
  • export 和 module.export的区别

    // index.js
    var something = require('./requireMe');
    something();
    // requireMe.js
    exports.something = function(){
      console.log('am a function');
    }
    // 以上代码会报错,因为 require 出来的 module.exports 是一个object,不能直接执行
    
    //修改方式一
    // requireMe.js
    module.exports = function(){
       console.log('am a function');
    }
    // 当把代码改成上面这样,就不会报错,因为此时的 module.exports 是一个 function,可以直接执行。
    // 修改方式二
    // index.js
    var something = require('./requireMe');
    something.something();
    // 因为这时候 require 出来的是一个 object,有一个 something 的属性,所以可以这样调用执行。


    exports = module.exports = {};

    • exports 是 module.exports 的一个引用
    • module.exports 初始值为一个空对象 {},所以 exports 初始值也是 {}
    • require 引用模块后,返回的是 module.exports 而不是 exports!!!!!
    • exports.xxx 相当于在导出对象上挂属性,该属性对调用模块直接可见
    • exports = 相当于给 exports 对象重新赋值,调用模块不能访问 exports 对象及其属性
    • 如果此模块是一个类,就应该直接赋值 module.exports,这样调用者就是一个类构造器,可以直接 new 实例。

    我的理解:export暴露的是方法 ,module.export暴露的是模块。



  • 相关阅读:
    【GoLang】转载:我为什么放弃Go语言,哈哈
    【GoLang】golang runtime 调度原理
    【GoLang】golang 微服务框架 介绍
    Redis缓存与springboot集成
    Redis分布式锁
    springboot配置文件的配置
    分布式事务之学习
    快速学习
    CAP定理为什么只能同时满足两个
    requestMapping之地址映射
  • 原文地址:https://www.cnblogs.com/cuikaitong/p/9546361.html
Copyright © 2011-2022 走看看