![]() |
1
0
是的,但这并不是基元独有的,对象也会发生这种情况。如果你这样做:
新对象存储在另一个内存位置,第一个对象可以被垃圾回收(假设没有其他对象引用它)。
当他们说基元是不可变的时,他们的意思是别的。它们意味着你不能对记忆中的那个位置进行更改。例如,
在严格模式下,你要么会得到一个错误,要么在非严格模式下什么都不会发生。 相比之下,对象 可以 被突变。您可以更改它们所包含的内容,同时仍将它们保留在内存中的同一位置:
|
![]() |
2
0
你在这里点击,旧值和新值占据了不同的内存位置。
说
当你这样做的时候
因此,在Javascript中,基元是不可变的,每个新赋值在内存中创建一个新值,而不是修改现有值。 |
![]() |
CocoaMix86 · 变量超出作用域后未回收内存[重复] 4 月前 |
![]() |
Yousef Dawood · javascript中的不变性是什么意思 10 月前 |
![]() |
SkyBlue · Java Spring服务的内存/垃圾收集器问题 10 月前 |
![]() |
f99 · 需要在内存位置使用指针-bad_alloc返回对象实例的建议吗? 11 月前 |