JS 符号绑定。常量可以被修改?!

案例

在一个js模块a中export了一个bool型变量x,在另一个模块b中import它(单项引入的)。

如果后面通过调用a的某个方法修改了x的值,结果b中引入的这个变量的值也跟着变了,这是什么原理?

按理说js的变量是引用型的,b中引入的x应该就只是新定义了一个变量来取得x当时的值而已,后面a中的x值变了,不应该能自动更新b中引入的值啊!

难道说有什么特殊机制?

解答

// 1.js
import { count, increase } from './2.js';
console.log(count);// 1
count = 2;// 从模块导入的值都是常量,所以它不允许被重新赋值
// 2.js
export let count = 1;
export function increase() {
count++;
}

未能赋值是正常逻辑。

但是我们使用 increase() 方法后程序便会产生意料之外的结果

// 1.js
import { count, increase } from './2.js';
console.log(count);// 1
increase();
console.log(count);// 2

这就是 ESM 专有的情况,符号绑定。

视频资源

阿里云盘源:
https://www.alipan.com/s/62H4fSwKtce

一刻相册源:
https://photo.baidu.com/photo/wap/albumShare?shareId=73548008218255227

posted @   mcayear  阅读(153)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
点击右上角即可分享
微信分享提示