Будет ли свободна память, в которой хранится старая переменная, при переназначении переменной в Nodejs? - PullRequest
0 голосов
/ 16 января 2019

В следующем коде

a = 1
b = {"a": a} // this output {"a": 1}
a = 2
console.log(b) // this still output {"a": 1}

В такой ситуации освободится ли память, в которой хранится содержимое 1, при переназначении переменной 2?

Ответы [ 2 ]

0 голосов
/ 18 января 2019
Переменная

не теряла свое пространство памяти, пока не была уничтожена.

когда пишешь

  a = 1
  b = {"a": a}        

значение a присваивается a узлу объекта b . Переменная a не привязана к узлу a . если вы хотите обновить узел А до нового значения, вы можете сделать это:

  b.a = 2;        
  console.log(b.a); //will print 2        
0 голосов
/ 16 января 2019
b = {"a": a} // this output {"a": 1}

эта инструкция указывает компилятору создать новый объект и установить ключ "a" в то же значение, которое переменная a имеет прямо сейчас, поэтому значение 1 копируется в память b.

...