菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
1710
1

发现 exports 和 module.exports 的关系,貌似找到暴露代码的新方法【再加一条】

原创
05/13 14:22
阅读数 2317

这两东西都是指向 this 对象的!
exports===this
而且
module.exports===this

对外暴露接口的新方法:直接绑定到 this 对象上即可?

这是我今天鼓捣 webpack 的时候发现的,特此记录。
本项目链接 git@gitee.com:zhaiduting/webpk.git
或者用 https://gitee.com/zhaiduting/webpk.git
项目下载后
1、安装依赖包 npm install
2、编译项目 npx webpack
3、在浏览器中打开 dist/index.html
4、按下功能键 F12 即可看到如下截图
file
其中主js文件为 main.js 代码如下

var thisModule=require('./thisModule')
console.log('in main.js:')
console.log(thisModule);
console.log('thisModule.af(7,8):'+thisModule.af(7,8));
console.log('thisModule.f(9):'+thisModule.f(9));

其中引入的模块为 thisModule.js 代码如下

var a = 200;

module.exports.f = [1,2,3];                 // module.exports 指向不变
exports.f = a;                              // exports 指向不变,覆盖了同名属性!

console.log('module.exports:');
console.log(module.exports)                 // 200
console.log('\n')

console.log('exports:');
console.log(exports)                        // 200
console.log('\n')

console.log('module.exports===exports:')
console.log(module.exports===exports)       // true
console.log('\n')

console.log('module.exports===this')
console.log(module.exports===this)          // true
console.log('\n')

console.log('exports===this')
console.log(exports===this)                 // true
console.log('\n')

this.arr=[2019, 3, 18]                      // Export Array OK
this.obj={email: 'zhaiduting@163.com'}      // Export Object OK
this.f=function(f){return f}                // Export Function OK
this.af=(a, f)=>a+f                         // Export Arrow Function OK

各版本号如下
file

发表评论

0/200
1710 点赞
1 评论
收藏
为你推荐 换一批