为什么可以重新分配对常量的引用的变量?
const a = {}
var b = a
console.log(a, b)
b = { a: 1 }
console.log(a, b)
这不是我所希望的那样(例如,const
,let
变量的“声明类型”(这里是正确的术语?), var
)在分配时不传递,而仅在声明时定义。
关于它的详细工作原理,是否有人明确引用?
答案 0 :(得分:3)
我假定变量的类型(
const
,let
,var
)在分配时不传递,而在声明时才定义。
是的。 a
被声明为const
,b
被声明为var
。它们是两个不同的变量,分配时对此没有任何改变。您可以为b
分配一个新值(您执行两次),但是在初始化后不能为a
分配一个新值。在a
的赋值中使用{em> b
的值根本不重要,这个值是什么也无关紧要(原始,可变对象或不可变对象)。