导出模块成员
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了导出模块成员,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1718字,纯文字阅读大概需要3分钟。
内容图文
![导出模块成员](/upload/InfoBanner/zyjiaocheng/1257/c932af2152ec42d48c3e1d554959e0bf.jpg)
使用module.exports对象导出模块成员
每个模块内部都有一个 module 对象,代表当前模块,我们可以使用它的 exports 属性导出模块成员。该属性的初始值为一个空对象,我们只需要将被导出的成员添加为该对象的属性即可。例如:
1 // 模块私有的成员 2 function divide ( x, y ) { 3 return x / y; 4} 5 6function multiply ( x, y ) { 7return x * y; 8} 910// 如果我们想导出某个成员的话,只需要将它添加为 module.exports 对象的属性即可。11// 模块导出的成员12 module.exports.add = function (x, y) { 13return x + y; 14}; 1516 module.exports.subtract = function (x, y) { 17return x - y; 18 };
使用module.exports的别名:exports对象
为了方便导出模块成员,Node.js为每个模块提供了一个exports对象,exports对象的初始值与module.exports对象的初始值相同,也就是说exports对象与module.exports对象指向同一个对象。我们可以用如下代码解释:
1 var exports = module.exports = {}
这样一来,我们就可以直接使用exports对象导出模块成员,如下所示:
1 exports.add = function (x, y) { 2return x + y; 3}; 45 exports.subtract = function (x, y) { 6return x - y; 7 };
一次导出多个成员
上面的两种导出方式每次只能导出一个成员,如果我们想一次导出多个成员,则可以使用一个包含要导出成员的新对象替换module.exports属性来的值(空对象)。
1 function add (x, y) { 2 return x + y; 3} 4 5function subtract (x, y) { 6return x - y; 7} 8 9 module.exports = { 10 add, 11 subtract 12 };
module.exports属性的值改变之后,exports对象的值并不会随着改变,此时两者不再指向同一个对象。Node.js规定只有module.exports对象中的成员会被导出,因此exports对象失去了导出模块成员的功能。
// 使用一个新对象替换module.exports属性来的对象 module.exports = { add, subtract }; // exports对象失去了导出模块成员的功能,此处导出模块成员失败。 exports.multiply = multiply; // 1. exports对象的初始值与module.exports对象相同,指向同一个空对象。 // 2. module.exports属性的值改变之后,exports对象的值并不会随着改变,还指向原来的空对象。 // 3. 由于只有module.exports对象中的成员会被导出,因此向exports对象添加的成员不会被导出。 // 简而言之,module.exports 指向哪个对象,哪个对象中的成员就会被导出
但是我们可以让exports对象重新指向module.exports对象,从而让exports对象再次具有导出模块成员的功能。
1 exports = module.exports = { 2 add, 3 subtract 4}; 56// 由于exports对象与module.exports再次指向同一个对象,因此下面的导出语句成功7 exports.multiply = multiply;
原文:https://www.cnblogs.com/wszzj/p/12049510.html
内容总结
以上是互联网集市为您收集整理的导出模块成员全部内容,希望文章能够帮你解决导出模块成员所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。