• node基础再现--module.exports 和exports


      实际上,最最基础的方法,最最原始的方法是module.exports,至于exports,是为了方便书写才出来的,应该说,module.exports 包含exports,所工作的范围更加的广泛!

    module的用法:(可以暴露任何部位,任何形式的值)

    (后来坑之处)require()中的是文件名,而不是什么方法,所以,就简单理解了;
    引入的文件当中,导出了什么,就有什么方法,

    //此文件为modle.js
    
    //相当于类,类名和文件名相同最好!
    
    var modle = { 
        var a = function(){};
        var b = function(){};
    }
    //module one暴露所有的方法,此时,无法再暴露其他方法
    module.exports = modle;
    //module two 暴露些许方法
    module.exports.output = modle.a;
    //新开辟单元暴露方法
    module.exports.fuck = function(){console.log('this is newwe!')}

    假若我引入了modle.js如下

    var modle = require('./modle');
    注意,上面require进来的是module.exports这个对象!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    //若是module.exports = modle,即:这个文件仅仅暴露了对象modle,引入后赋给modle,使用如下:
    modle.a();modle.b();
    //若是module.exports.output = modle;那么是将modle对象赋给了module.exports的output,然后require进来了module.exports对象,使用如下:
    modle.modle.a() modle.modle.b()
    //至于exports,只能够exports.什么什么,也就是只能给他创建对象,然后,暴露,但是不能exports=遵循了这点以后实际和module.exports.hello = function(){}一样

    至于exports:

    它是有上面的引升来的,等于上面那个,所以,它不能在赋值了,只能新开辟值,只能新开辟值,只能新开辟值,只能新开辟值(重要)

    exports.hello = function(){console.log('hello');}

    注:如果实在是分不清两者的区别,那么,放弃exports,仅仅使用module.exports足够了!

  • 相关阅读:
    day29
    day28
    day27
    查询区间内有多少个不同的数(线段树/树状数组)
    树状数组变形:带区间修改的树状数组
    特征提取:PCA主成分分析法和NMF非负矩阵分解法
    Trie树
    Logistic&Softmax回归
    高斯贝叶斯分类器(GNB实战)
    朴素贝叶斯分类器(伯努利贝叶斯+高斯贝叶斯+多项式贝叶斯)
  • 原文地址:https://www.cnblogs.com/modle-sherlock/p/5285888.html
Copyright © 2020-2023  润新知