博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
module.exports 和 exports的区别
阅读量:7188 次
发布时间:2019-06-29

本文共 1050 字,大约阅读时间需要 3 分钟。

 

引用传递的理解 就理解了这两者的区别   var arr = [10,20,30];    var newarr = arr;    console.log(arr);//[10,20,30]    console.log(newarr);//[10,20,30];        newarr[0] = 40;    console.log(arr);//[40,20,30];    console.log(newarr);//[40,20,30];

 

  

 

 

例一. 采用module.exports

module.exports = {    hello: "hello",    world: "world"};

例二. 采用exports

exports.hello = "hello";exports.world= "world";

  

   区别   

exports = {    hello: "hello",    world: "world"};//这样代码不报错, 但是没有用, 接口并未暴露出来. 原因请看下面

  

var load = function (exports, module) {    // .js的文件内容    ...    // load函数返回:    return module.exports;};var exported = load(module.exports, module);

  

 

系统自动给nodejs 文件增加2个变量 exports 和 module, module 又有一个属性 exports, 这个exports 属性指向一个空对象 {}; 同时 exports这个变量也指向了这个空对象{};

于是就有了 exports => {} <=module.exports.

 

就是说自己定义一个exports没有用的,必须给modul。exports设置key:value值(exports.text= "hello")才可以,因为最后是导出 module.exports。

(外加:node.js是遵循common.js 实用const ** = require("**") 和 module.exports暴露模块,而浏览器v8引擎是解析js脚本文件的,并不能运行node.js的模块。

 

推荐用module.exports导出。

转载于:https://www.cnblogs.com/moonzwt/p/9794727.html

你可能感兴趣的文章
HBase 相关API操练(一):Shell操作
查看>>
UILabel
查看>>
html.手打 括号内加减
查看>>
Objective-C Runtime 运行时之四:Method Swizzling
查看>>
BZOJ3673 & BZOJ3674 & 洛谷3402:可持久化并查集——题解
查看>>
2.CURL命令
查看>>
C# 提交成功提示
查看>>
C++虚函数与纯虚函数的区别
查看>>
为ComboBox添加ToolTip
查看>>
【LeetCode】Longest Common Prefix
查看>>
有關AWS EC2 (EBS 收費)的問題
查看>>
Django---验证码
查看>>
DotNetTextBoxV3.2.0控件增加导入Word文档功能的外挂插件!
查看>>
Python--day31--黏包(不熟...)
查看>>
关于页面加载渲染
查看>>
时间格式
查看>>
【BZOJ2818】Gcd [莫比乌斯反演]
查看>>
如何查看linux系统是32位还是64位
查看>>
UNITY Destroy()和DestroyImadiate()的区别
查看>>
vue2.X props 数据传递 实现组件内数据与组件外的数据的双向绑定
查看>>