首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏快乐阿超

    export default和module.exports

    ——海明威 我们在vue项目中创建两个js 在util.js中写入 export default { ruben: 'ruben' } 在api.js中写入 module.exports = util.js中写的export default失败了 因为require是CommonJS中的语法,Node 应用由模块组成,采用 CommonJS 模块规范 而CommonJS暴露模块采用的语法是module.exports

    87410编辑于 2022-08-17
  • 来自专栏用户2442861的专栏

    exports 和 module.exports 的区别

    module.exports 的关系,我们先来补点 js 基础。 我们只需知道三点即可知道 exports 和 module.exports 的区别了: exports 是指向的 module.exports 的引用 module.exports 初始值为一个空对象 不再指向同一块内存,也就是说此时 exports 和 module.exports 毫无联系,也就是说 module.exports 指向的那块内存并没有做任何改变,仍然为一个空对象 {} ,也就是说 module.exports 。 = module.exports 原因也很简单, module.exports = somethings 是对 module.exports 进行了覆盖,此时 module.exports 和 exports

    86810发布于 2018-09-19
  • 来自专栏OECOM

    exports和module.exports介绍

    在nodejs中,提供了exports和module.exports导出模块, require对象从外部获取一个模块的,即所获取模块的 exports或者module.exports导出的模块。 这个变量是一个对象,它的exports属性(即module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性。 如果你希望你的模块就想为一个特别的对象类型,请使用module.exports;如果希望模块成为一个传统的模块实例,请使用exports.xx方法;module.exports才是真正的接口,exports 最终返回给调用的是module.exports而不是exports。 换句话说module.exports导出模块时相当于创建了一个全局的对象,每次调用访问的都是这一个对象,数据是全局公用的,所以在以后的使用过程中需要注意。

    1.8K20发布于 2020-07-01
  • 来自专栏金朝麟的专栏

    Module.exports和exports的区别

    module.exports对象是由模块系统创建的。 有时这是难以接受的;许多人希望他们的模块成为某个类的实例。 为了实现这个,需要将期望导出的对象赋值给module.exports。 // 你的被引入代码 End })(module, module.exports); // 不管是exports还是module.exports,最后返回的还是module.exports (a.func()); // module.exports的函数 // 当属性在module.exports没有定义,函数在module.exports有定义 console.log(a.id2); // undefined console.log(a.func()); // module.exports的函数 // 当函数在module.exports没有定义,属性在module.exports 同时赋值时,exports所使用的属性和方法必须出现在module.exports,若属性没有在module.exports中定义的话,出现undefined,若方法没有在module.exports中定义

    1.6K00发布于 2017-02-11
  • 来自专栏nummy

    exports与module.exports的区别

    刚开始的时候exports和module.exports指向同一个空对象: ? 我们可以给exports或者module.exports添加任意属性,实际上相当于作用于同一个对象。 当我们导出一个模块的时候,最终得到的实例实际是由module.exports来定义的,而不是exports。 如果没有显式定义module.exports,exports就会收集它由定义的任意属性并将它们赋予给module.exports。 如果已经显式定义了module.exports, exports中定义的对象将会被忽略。例如: module.exports = 'ROCK IT!' 也就是说,只要我们不直接覆写module.exports,那么module.exports与exports并没有任何区别。

    68120发布于 2018-08-27
  • 来自专栏吴裕超

    exports 和 module.exports 的区别

    但很多新手可能会迷惑于 exports 和 module.exports 的区别,为了更好的理解 exports 和 module.exports 的关系,我们先来巩固下 js 的基础。 明白了上述例子后,我们只需知道三点就知道 exports 和 module.exports 的区别了: module.exports 初始值为一个空对象 {} exports 是指向的 module.exports 我们经常看到这样的写法: exports = module.exports = somethings 上面的代码等价于: module.exports = somethings exports = module.exports 原理很简单,即 module.exports 指向新的对象时,exports 断开了与 module.exports 的引用,那么通过 exports = module.exports 让 exports 重新指向 module.exports 即可。

    1.2K40发布于 2018-02-28
  • 来自专栏女程序员的日常_Lin

    node.js --- export和module.exports用法

    export和module.exports用法 — exports用法 const canadianDollar = 0.91; function roundTwo(amount){ return module.exports用法 通过给exports添加属性,如果想要导出单个变量、函数或者对象的时候就不能用了,这时候就需要用module.exports。 = Currency; module.exports可以对外提供单个变量、函数或者对象。 如果既有exports又有module.exports的模块,则会返回module.exports,而exports会被忽略。 使用export 和 module.exports可以将功能组织成模块,规避掉程序脚本一直增长所产生的弊端。 愿我们有能力不向生活缴械投降---Lin

    4.7K30发布于 2019-07-19
  • 来自专栏前端小叙

    nodejs中module.exports 与 exports区别?

    请牢记一条原则:无论使用 exports 暴露成员,或是 module.exports 暴露成员,最终暴露的结果,都是以 module.exports 所指向的对象为准。 是 module.exports 对象地址的一个引用,exports 本质是一个变量) 两者没有区别,是全等的 注意: 在使用 module.exports 时,我们可以将某一个对象赋值给 module.exportsmodule.exports 所指的对象)。 原因是因为 exports 在默认情况下是指向 module.exports 对象的引用,如果为 exports 赋值了,那么也就是说 exports 不再指向 module.exports 所指的对象的地址 重要结论:module.exports 和 exports 同指一个对象,但是最终暴露结果以 module.exports 的为准,上面的代码中,exports 改变了指向,而我们又没有为 module.exports

    95430编辑于 2022-12-03
  • 来自专栏前端F2E

    module.exports和exports,应该用哪个

    CommonJS (CJS)[2]格式用于Node.js,使用require和module.exports来定义依赖和模块。npm 生态系统就是基于这种格式构建的。 为 exports 分配的属性也会将它们添加到 module.exports。这是因为(至少最初)exports 是对 module.exports 的引用。 应该用哪个 由于 module.exports 和 exports 都指向同一个对象,因此使用哪个通常并不重要。 无论你将什么赋值给 module.exports ,都将从你的模块中导出什么。 那么,请看下面的内容: exports.foo = 'foo'; module.exports = () => { console.log('bar'); }; 这样只会导出一个匿名函数。

    63420编辑于 2023-09-12
  • 来自专栏wfaceboss

    module.exports 、exports、export、export default的区别

    module.exports和exports是属于 CommonJS 模块规范,export和export default是属于ES6语法。 这个变量是一个对象,它的exports属性(即module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性。 1.针对CommonJs: 使用步骤: (1)使用module.exports导出模块: 新建一个文件demo.js,通过module.exports输出变量x和函数add。 为每个模块提供一个exports变量,指向module.exports。 var exports = module.exports; exports其实是module.exports的引用 ,可以直接在exports对象上添加相关的方法。

    9.7K53发布于 2019-04-08
  • 来自专栏我的博客

    NodeJs当中module.exports和exports的区别

    Module.exports才是真正的接口,exports只不过是它的一个辅助工具。 最终返回给调用的是Module.exports而不是exports。 所有的exports收集到的属性和方法,都赋值给了Module.exports。当然,这有个前提,就是Module.exports本身不具备任何属性和方法。 如果,Module.exports已经具备一些属性和方法,那么exports收集来的信息将被忽略。 如果你想你的模块是一个特定的类型就用Module.exports。 1、exports 是指向的 module.exports 的引用 2、module.exports 初始值为一个空对象 {},所以 exports 初始值也是 {} 3、require() 返回的是 module.exports 而不是 exports //exports只是一个引用!!!

    1.2K60发布于 2018-04-28
  • 来自专栏我们一无所有,我们巍然矗立

    NodeJs-Lesson1-require和module.exports探究

    require和module.exports探究 require和module.exports讲解 require exports和module.exports探究 留一个疑问? require和module.exports讲解 遵守开闭原则:对修改关闭,对扩展开放,所以要想使用引入的模块,子模块必须提供module.exports方法。 console.log(exports == module.exports): ? 看到这个结果,确实是表示exports和module.exports是同一个对象 那我们再看看另外一种情况呢 var a = 123; bar b = 'abc'; exports = a; module.exports 综上所述:我们可以得出一些结论: exports和module.exports指向的是同一个对象。

    66750发布于 2020-09-17
  • 来自专栏acoolgiser_zhuanlan

    node.js中exports 和 module.exports 的区别

    明白了上述例子后,我们只需知道三点就知道 exports 和 module.exports 的区别了: module.exports 初始值为一个空对象 {} exports 是指向的 module.exports 的引用 require() 返回的是 module.exports 而不是 exports Node.js 官方文档的截图证实了我们的观点: ? exports = module.exports = {...} 我们经常看到这样的写法: exports = module.exports = {...} 上面的代码等价于: module.exports = {...} exports = module.exports 原理很简单:module.exports 指向新的对象时,exports 断开了与 module.exports 的引用,那么通过 exports = module.exports 让 exports 重新指向 module.exports

    1.1K30发布于 2019-01-17
  • 来自专栏coding

    node.js中exports与module.exports的区别

    因此node.js提供了一个变量exports作为module.exports的引用 16.js也可以写成: let name = '叶文洁' // exports 是 module.exports 的引用 让我们将exports换为module.exports试下: 18.js let name = '章北海' module.exports = name 结果: ☁ 01 [master] ⚡ node 17.js 章北海 既然exports === module.exports,那么为何修改exports不起作用? 原因是,exports是module.exports的引用,当exports被重新赋值时,并不会影响到module.exports的值,而模块返回的是module.exports,因而只有给module.exports 同一个引用 来个更复杂点的例子: 18.js let name = '章北海' module.exports = name exports = {} exports.age = 10 module.exports

    1.3K20发布于 2018-08-02
  • 来自专栏工作笔记精华

    module.exports、exports、export、export default之间的关系和区别

    对于module.exports、exports和export、export default之间的关系以及他们的区别一直处于懵逼状态的小伙伴,本篇文章带你走进新大陆。 module.exports: // utils.js let appid = '123456' let bar = function (id) { return `编号:${id}` } // 通过module.exports将appid与bar暴露出去 module.exports = { appid , bar } ----------------------------- let exports = module.exports; !!! 这里要注意: 不能直接将exports变量指向一个值,因为这样等于切断了exports与module.exports的联系。 let exports = module.exports let appid = '123456' // 错误写法 exports = { appid } // 正确写法 exports.appid

    1.1K10发布于 2019-11-04
  • 来自专栏程序员成长指北

    require时,exports和module.exports的区别你真的懂吗?

    require 提到 exports 和 module.exports 我们不得不提到 require 关键字。 exports = module.exports = {}; 看一张图理解这里更清楚: ? 我们经常看到这样的写法: exports = module.exports = somethings 上面的代码等价于: module.exports = somethings exports = module.exports 原理很简单,即 module.exports 指向新的对象时,exports 断开了与 module.exports 的引用,那么通过 exports = module.exports 让 exports 重新指向 module.exports 即可。

    1.8K20发布于 2019-08-19
  • 来自专栏蛋未明的专栏

    Node.js Module – exports 和module.exports之间的联系与区别

    在开源的 node.js 代码中可以看出, module.exports 才是真正的模块 export ,而 exports 仅仅是 module.exports 的一个帮手。 你的所有模块 export 的,最终都是通过 module.exports 返回出去的。 Exports 的作用主要是将所有的属性和方法整理、连接给 module.exports ,当 module.exports 还未执行。 rocker.js 中最开始就执行了 module.exports ,根据之前我们介绍的,在 module.exports 执行后他将拒绝所有的 exports 模块,因此我们的 exports.name 你可以通过 module.exports 任何的对象。

    96720编辑于 2022-05-09
  • 来自专栏RivenCabin

    Node 导入模块:require()和导出模块:module.exports、exports的用法及注意点

    /riven-custom') // 3、加载第三方模块(第三方模块需要我们先下载才能使用) const moment = require('moment') 2、module.exports、exports ()模块时,得到的永远是module.exports指向的对象*/ // module.exports===exports(只是在默认情况下全等,指向改变后不是全等) /* 指向误区:谨记以module.exports : false console.log('module.exports===exports? = exports module.exports.sex = '男' // module.exports===exports? : true console.log('module.exports===exports?:', module.exports === exports)

    1.6K30编辑于 2022-08-16
  • 来自专栏前端小哥哥

    是export还是module.exports,是import还是require,是ES6还是CommonJS,是爱❤️还是责任?

    Commonjs 规范所支配着,这也是悲剧发生的导火索,请看灾难现场: // version.js var version = 3; function incVersion() { version++; } module.exports # 可以改写成函数 var version = 3; function incVersion() { version++; } module.exports = { get version() CommonJS ES6 特征 exports ✓ x 是 module.exports 的一个引用 module.exports ✓ x module.exports = xxx,就是导出xxx export x ✓ 多个 export default x ✓ 单个 require ✓ ✓ 导出的内容是module.exports的指向的内存块内容/ es6时是一个对象({default:xxx}) import /a') console.log('a', a) //{a: 123} exports 和 module.exports 在一个node执行一个文件时,会给这个文件内生成一个 exports和module

    71020编辑于 2023-05-04
  • 来自专栏vae

    Node模块化

    一,创建一个自定义模块 a.js,使用module.exports暴露出去。 对象上挂载属性,暴露出去 module.exports={name,show} 二,加载上面的自定义模块。 得到 module.exports 对象。 //1,加载用户自定义模块,可以省略.js后缀名。 const a=require('. module.exports和exports是同一个对象。 最终都是module.exports指向的对象。 //每个.js自定义模块中都有一个module对象,它里面存储了当前模块有关的信息。 console.log(module) // module.exports和exports是同一个对象 //最终都是module.exports指向的对象 console.log(module.exports

    44410编辑于 2022-10-04
领券