实时绑定是什么意思?

时间:2018-09-06 19:54:57

标签: javascript binding es6-modules

我正在学习一些教程,它说

  

ESM使用实时绑定。这意味着支持周期性的功能   依赖性。

但是我不清楚这个概念。谢谢。

1 个答案:

答案 0 :(得分:1)

实时绑定是ES模块中引入的一个概念。这意味着,当导出模块更改值时,更改将在导入方可见。 CommonJS模块不是这种情况。模块导出被复制到CommonJS中。因此,导入模块无法看到导出方发生的更改。


ESM

counter.mjs

export let count = 1;
export function increment() {
    ++count;
}

index.mjs

import { count, increment } from './counter.mjs';
console.log(count);
increment();
console.log(count);

输出

$ node --experimental-modules index.mjs
1
2

CJS

counter.js

let count = 1;
function increment() {
    ++count;
}

exports.count = count;
exports.increment = increment;

index.js

const { count, increment } = require('./counter.js');
console.log(count);
increment();
console.log(count);

输出

$ node index.js
1
1

有关该主题的更多资源: