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

    总结:exports是module.exports的指向.

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

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

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

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

    首先我们来举个例子吧,为了更好地理解.

    define(function(require,exports,module){
    function add(){
    console.log('这是add方法');
    }
    //exports.add = add;
     
    //module.exports.add = add;
    //module.exports = add;
    //exports = add;
     
    })
    这么简单的一个例子,里面,
    exports.add = add;和
    module.exports.add = add;其实是一样的,返回的时候返回的都是一个exports对象,而里面都有一个add的方法,所以都可以调用add()的方法.这时候好像他们是没有区别的.
    但是如果例子中写的是
    module.exports = add;和
    exports = add;就相当于把add方法直接赋值给module.exports和exports,而exports只是module的一个指向,所以将来如果返回的不是一个方法,而只是一个内容,但是可以赋值给module.exports,
    然后返回的是一个方法.
    当然,要注意,如果有多个方法的话,利用直接赋值给module.exports的话,后面的赋值会覆盖前面的赋值.这个小细节要格外注意.

    以上是我对exports与module.exports的区别的理解,希望大家可以增加漏点,订正错点.不喜勿喷,谢谢.
  • 相关阅读:
    记账本第二天
    记账本第一天
    HDU 1811
    Codeforces Round #246 (Div. 2) D. Prefixes and Suffixes
    KMP超强模板贴一份
    2014辽宁省赛总结
    Codeforces Round #244 (Div. 2)
    CodeForces 383D Antimatter
    NEU 1351 Goagain and xiaodao's romantic story I
    UVA 10692 Huge Mod
  • 原文地址:https://www.cnblogs.com/weiyecrossover/p/6058024.html
Copyright © 2011-2022 走看看