具名导入是解构么
解构赋值
1 |
|
- 上面的代码在做解构赋值
- 解构赋值的英文全称是: Destructuring assignment
- 解构赋值 => 解构 + 赋值;重点是赋值
- 对于obj中的n是基本数据类型,解构出来obj中n的值是1,然后赋值给一个新的变量n,他的值是拷贝过来的,在内存中是独立的两份内存空间
- 对于obj中的increase是引用类型,increase的值是存放函数的堆内存中的地址,然后拷贝赋值给一个新的变量increase,也是两块栈内存空间,但是指向的同一份堆内存中的函数
- increase();改变的是obj的n,对于结构出来的n没有影响
具名导入
- 具名导入不是解构赋值
myMoudule.mjs
1 |
|
test.mjs
1 |
|
live bindings
- 具名导入是live bindings
- 具名导入是给导出的内容取的新的名字n和increase,他们用的内存空间还是模块内部的内存空间
- 当我们调用increase去改变n的时候,还是改变的是模块内部的n;具名导入的值也会受到影响
具名导入是解构么
https://retech-fe.github.io/blog/2023/03/06/import-live-bindings/