Require JS 特性

Require JS 特性

  1. module 被执行的时候加载,加载用会留下缓存,供之后使用
  2. 一旦出现某个模块被循环使用(A 模块中调用了 B,B 中又调用了 A),就输出已经执行的部分,还未执行的部分不会输出。

我们来看个例子:

这是 module A:modA

module.exports.test = 'A';

const modB = require('./modB');
console.log('modA:', modB.test);

module.exports.test = 'AA';

这是 module B:modB

module.exports.test = 'B';

const modA = require('./modA');
console.log('modB:', modA.test);

module.exports.test = 'BB';

这是等会要执行的 js 文件:main.js

const modA = require('./modA');
const modB = require('./modB');

我们不看结果先来分析一下:

  1. 显示调用了modAmodA中先输出了 test 为 ‘A’,然后去调用了modBmodB 中先输出 test 为’ B’,这时又调用了modA,这时说明 modA被循环使用了,所以剩下的不会再输出,只会输出已经已经执行的,所以接下来输出modB中的 console,modA.test还是 A,又输出modB中的 test 为 BB。
  2. main.js 中执行第二句,调用modB,因为有缓存,所以modBtest还是 BB。
  3. 结果为:
modB: A
modA: BB

ps:不难发现,使用了循环调用会让代码变得很复杂,并且不容易找 bug,如果你忽略了这点的话,所以,我们还是尽量避免这样的情况发生。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值