问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何使用module.exports

发布网友 发布时间:2022-04-23 03:48

我来回答

2个回答

懂视网 时间:2022-04-23 08:09

这次给大家带来exports与module.exports使用方法,exports与module.exports使用的注意事项有哪些,下面就是实战案例,一起来看一下。

1. exports 是 module.exports 的 辅助对象,exports对外提供api 时需要用return 返回exports 对象

2. module.exports 也可直接向外提供api

参考 : https://github.com/seajs/seajs/issues/242

exports Object

exports 是一个对象,用来向外提供模块接口。

define(function(require, exports) {
 // 对外提供 foo 属性
 exports.foo = 'bar';
 // 对外提供 doSomething 方法
 exports.doSomething = function() {};
});

除了给 exports 对象增加成员,还可以使用 return 直接向外提供接口。

define(function(require) {
 // 通过 return 直接提供接口
 return {
 foo: 'bar',
 doSomething: function() {}
 };
});

如果 return 语句是模块中的唯一代码,还可简化为:

define({
 foo: 'bar',
 doSomething: function() {}
});

上面这种格式特别适合定义 JSONP 模块。

特别注意:下面这种写法是错误的!

define(function(require, exports) {
 // 错误用法!!!
 exports = {
 foo: 'bar',
 doSomething: function() {}
 };
});

正确的写法是用 return 或者给 module.exports 赋值:

define(function(require, exports, module) {
 // 正确写法
 module.exports = {
 foo: 'bar',
 doSomething: function() {}
 };
});

提示:exports 仅仅是 module.exports 的一个引用。在 factory 内部给 exports 重新赋值时,并不会改变 module.exports 的值。因此给 exports 赋值是无效的,不能用来更改模块接口。

module.exports Object

当前模块对外提供的接口。

传给 factory 构造方法的 exports 参数是 module.exports 对象的一个引用。只通过 exports 参数来提供接口,有时无法满足开发者的所有需求。 比如当模块的接口是某个类的实例时,需要通过 module.exports来实现:

define(function(require, exports, module) {
 // exports 是 module.exports 的一个引用
 console.log(module.exports === exports); // true
 // 重新给 module.exports 赋值
 module.exports = new SomeClass();
 // exports 不再等于 module.exports
 console.log(module.exports === exports); // false
});

注意:对 module.exports 的赋值需要同步执行,不能放在回调函数里。下面这样是不行的:

// x.jsdefine(function(require, exports, module) {
 // 错误用法
 setTimeout(function() {
 module.exports = { a: "hello" };
 }, 0);
});

在 y.js 里有调用到上面的 x.js:

// y.jsdefine(function(require, exports, module) {
 var x = require('./x');
 // 无法立刻得到模块 x 的属性 a
 console.log(x.a); // undefined
});

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

vue中数组变化检测问题

JS上传文件时显示进度条

热心网友 时间:2022-04-23 05:17

mole.exports 对象是由模块系统创建的。在我们自己写模块的时候,需要在模块最后写好模块接口,声明这个模块对外暴露什么内容,mole.exports 提供了暴露接口的方法。
1、返回一个JSON Object
var app = {
name: 'app',
version: '1.0.0',
sayName: function(name){
console.log(this.name);
}
}
mole.exports = app;1234567812345678

这种方法可以返回全局共享的变量或者方法。
调用方法:
var app = require('./app.js');
app.sayName('hello');//hello1212

或者这样用:
var func1 = function() {
console.log("func1");
};

var func2 = function() {
console.log("func2");
};

exports.function1 = func1;
exports.function2 = func2;1234567891012345678910

调用方法为:
var functions = require("./functions");
functions.function1();
functions.function2();123123

2、返回一个构造函数
CLASS.js:
var CLASS = function(args){
this.args = args;
}
mole.exports = CLASS;12341234

调用:
var CLASS = require('./CLASS.js');
varc = new CLASS('arguments');1212

3、返回一个实例对象:
//CLASS.js
var CLASS = function(){
this.name = "class";
}
CLASS .prototype.func = function(){
alert(this.name);
}
mole.exports = new CLASS();1234567812345678

调用:
var c = require('./CLASS.js');
c.func();//"class"
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
单位高温防护欠缺致员工中暑如何对待 狗狗为什么爱看视频 360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 搜神记的男女主角是谁? 七月不是鬼节吗?那为什么七月初七又是情人节。。 应用分身忘记了密码怎么找回? 阳历七月七什么节日 我一个手机号注册了2个微信,但是其中一个密码忘记了,怎么登陆? 应用分身忘记了密码怎么找回? 黑色棉衣和白色棉衣配浅咖色和黑色哪个显白? 应用分身忘记了密码怎么找回? 和同事处不熟,怎么办? exports和module.exports的区别是什么 习惯了熬夜现在晚上经常失眠特别精神咋办? 经常通宵失眠怎么办? 我晚上经常失眠,有时候甚至一连几个通宵都睡不着,请问我该怎么办 最近老是失眠,每天晚上不管是听歌还是看书就是不累,还要不就一不小心就会来个通宵,真不知道怎么办好? 天天都失眠,熬通宵,怎么办,有什么可以助睡眠的? 雾化玻璃能做折叠门吗 调光玻璃能不能用于汽车上 有谁能介绍下天津正泰祥玻璃有限公司???我们公司最近要大量采购调光玻璃,他家怎么样啊? 调光玻璃可以做成中空的吗? 调光玻璃做中空影响效果么? 搜神传的女主角是谁? 《搜神记》的女主角叫什么名字? 话说搜神记的女主有几个 树下野狐经典小说 搜神记 里面的女主角是谁 请抢答 《搜神记》(不是干宝的)好看吗?女主角是谁 怎样的一个人? 搜神记 主角介绍 有一部古装剧女主很倒霉总是嫁不出去 男主是陈键锋 谁知道搜神记最后男主角拓跋野和哪个女主角好了? 搜神记里的主角到底是谁? 女主是上古唯一的神,很悲惨的爱情故事,女主最后把自己的血都化成曼珠沙华,救活了所有人的故事, 电视剧《搜神记》里面的女主角叫什么? mbp2019 5500还是5600 社保卡能买火车票吗 社保卡买火车票步骤流程介绍 微信小程序中module.exports和exports的区别 你要我怎样,用英语怎么说 你想要我怎么样 翻译成英文 我已经答应过不再爱你你还要我怎么做的英文翻译 把“那你要我怎么做”翻译成英文 不然你要我怎样 英文怎么翻译? 你想要我怎么样 翻译成英文 请帮帮忙。。