exports与module.exports的区别,export与export.defult区别

在JS模块化编程中,之前使用的是require.js或者sea.js。随着前端工程化工具webpack的推出,使得前端js可以使用CommonJS模块标准或者使用ES6 moduel特性。
在CommonJs模块标准中我们载入模块使用的是require(),输出模块用的是exports或者module.exports
在ES6中载入模块我们用的是import ,输出模块用的是export

exports与module.exports的区别

//载入模块
var m = require('./moduleA.js')
m.callName()
//输出模块
exports.callName = function(){
    console.log('jesse')
}
//也可以这样输出
module.exports.callName = function(){
    console.log('jesse')
}

module.exports才是module模块的真正接口,而exports可以理解为它的一个副本
虽然修改exports对象的时候也会修改module.exports对象,但最终返回给调用的是module.exports对象
当module.exports对象通过赋值方式进行设定后,就已经和exports对象没关系了

so,我的理解是exports输出的只是要输出的对象的某个属性,module.exports才真正输出的是要输出的对象。
一个模块文件中可以有多个exports输出,但只能有一个module.exports输出
这种方式普遍用于node中模块的编写

export与export.defult区别

es6moduel特性在node环境中并不能完全支持,解决方法是用babel编译

//载入模块
import {callName} from './moduleA.js'
callName()
//输出模块
export function callName (){
    console.log('jesse')
}

1.export与export default均可用于导出常量、函数、文件、模块等
2.你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用
3.在一个文件或模块中,export、import可以有多个,export default仅有一个
4.通过export方式导出,在导入时要加{ },export default则不需要

原文地址:https://www.cnblogs.com/jesse131/p/10163725.html

时间: 2024-10-07 19:29:13

exports与module.exports的区别,export与export.defult区别的相关文章

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

首先我们要明白一个前提,CommonJS模块规范和ES6模块规范完全是两种不同的概念. CommonJS模块规范 Node应用由模块组成,采用CommonJS模块规范. 根据这个规范,每个文件就是一个模块,有自己的作用域.在一个文件里面定义的变量.函数.类,都是私有的,对其他文件不可见. CommonJS规范规定,每个模块内部,module变量代表当前模块.这个变量是一个对象,它的exports属性(即module.exports)是对外的接口.加载某个模块,其实是加载该模块的module.ex

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

commonjs node.js 的模块系统就是按照模块化规范 commonjs 来实现的: var math = require("math"); math.add(1, 2); exports 和 module.exports node.js 实现模块化最常用的函数就是 exports 和 module.exports. exports 是指向 module.exports 的引用.它们初始化都是为{},require() 返回的是 module.exports,所以当改变了 mo

exports、module.exports 和 export、export default

1.es6写法 写法一:(默认导出) export default function () { console.log('foo'); }; 写法二:(命名式导出) export const a = 123; 写法三:(命名式导出) const b = 3;const c = 4;export { b, c }; 引用方式:import xx from xxx 2.commonjs规范 CommonJS规范规定,每个模块内部,module变量代表当前模块.这个变量是一个对象,它的exports属

exports 和 module.exports 的区别

我理解的exports 和 module.exports 的区别,欢迎大家吐槽~ 为了更好的理解 exports 和 module.exports 的关系,我们先来补点 js 基础.示例: app.js var a = {name: 'nswbmw 1'}; var b = a; console.log(a); console.log(b); b.name = 'nswbmw 2'; console.log(a); console.log(b); var b = {name: 'nswbmw 3

exports和module.exports的区别

最近忍不住开始尝试nodeJS了,简直又是打开了一片天地,学的越多越觉得自己好low,还有好多好多东西没有触碰,没有学习. 解决这个问题的唯一的办法就是卧薪尝胆. 好的,刚开始接触nodeJS,在视频学习的时候看到了exports和module.exports这两种导出模块函数的方法.哎,好老师太难遇到了,我唯一喜欢的老师就是带我坑js的石川老师,其他老师的视频我实在不知道说什么好.好吧又说别的了,其实我的意思是我没有听懂exports和module.exports的区别,而且那个老师也只是随便

nodejs模块中exports和module.exports的区别

通过Node.js的官方API可以看到Node.js本身提供了很多核心模块 http://nodejs.org/api/ ,这些核心模块被编译成二进制文件,可以require('模块名')去获取:核心模块具有最高的加载优先级(有模块与核心模块同名时会体现) 文件模块访问方式通过require('/文件名.后缀') require('./文件名.后缀') requrie('../文件名.后缀') 去访问,文件后缀可以省略:以"/"开头是以绝对路径去加载,以"./"开头

nodejs exports与module.exports的区别

exports和module.exports的作用都是将文件模板的方法和属性暴露给require返回的对象进行调用.但是两者有本质的区别,exports的属性和方法都可以被module.exports替代. 如下代码是一样的: exports.name='iwang' module.exports.name = 'iwang' 但是exports不能替代module.exports的方法,所有的exports对象最终都是通过module.exports传递执行的.可以理解exports是给mod

node exports和module.exports区别

我们只需知道三点即可知道 exports 和 module.exports 的区别了: exports 是指向的 module.exports 的引用 module.exports 初始值为一个空对象 {},所以 exports 初始值也是 {} require() 返回的是 module.exports 而不是 exports 所以: 我们通过 var name ='nswbmw'; exports.name = name; exports.sayName =function(){ conso

node.js module初步理解,exports与module.exports的区别

在开发一个复杂的应用程序的时候,我们需要把各个功能拆分.封装到不同的文件,在需要的时候引用该文件.没人会写一个几万行代码的文件,这样在可读性.复用性和维护性上都很差,几乎所有的编程语言都有自己的模块组织方式,比如Java中的包.C#中的程序集等,node.js使用模块和包来组织,其机制实现参照了CommonJS标准,虽未完全遵守,但差距不大,使用起来非常简单. 在node.js中模块与文件是一一对应的,也就是说一个node.js文件就是一个模块,文件内容可能是我们封装好的一些JavaScript