标签:aaa time 引用类型 OLE import 引入 set 模块化 改变
3、模块中有定时器改变了导出的值,导出的值会不会变?
// a.js
let a = 1
setTimeout(() => {
a = 2
}, 1000)
module.exports = a
// test.js
const a = require(‘./a‘)
setTimeout(() => {
console.log(a) //2
}, 2000)
// a2.js
let a = 1
setTimeout(() => {
a = 2
}, 1000)
export {
a
}
// test2.js
import { a } from ‘./a2‘
setTimeout(() => {
console.log(a) //1
}, 2000)
结果是import引入的值是2,而require引入的值一直是1,这也是require和imort很重要的一个区别,es module的export导出的值会静态的绑定,而commonjs exports导出的值是一个对象,会复制一份。这样也就出现了这样的现象。
标签:aaa time 引用类型 OLE import 引入 set 模块化 改变
原文地址:https://www.cnblogs.com/cupid10/p/13371233.html