У меня есть следующий код, который копирует значение переменной, а затем меняет его значение.Javascript unbind variables
var a = [{name: 'John Doe'}];
var b = a;
document.write(b[0].name + '<br />');
document.write(a[0].name + '<br /><br />');
b[0].name = 'Jane Doe';
document.write(b[0].name + '<br />');
document.write(a[0].name + '<br />');
Но как-то, что также изменить первое значение переменной
Как сделать переменную A, чтобы сохранить свое значение?
Вы должны глубоко клонировать 'a', один из способов сделать это: var b = JSON.parse (JSON.stringify (a))' –
Возможный обман: http://stackoverflow.com/questions/15722433/javascript-copy-array-to-new-array – Oisin
Переменная a передается в b по ссылке. Поскольку a и b имеют одну и ту же ссылку, всякий раз, когда вы меняете что-либо на одном, оно также меняет другой. Чтобы предотвратить это, вам понадобится сделать глубокую копию a на b, скопировав все отдельные свойства. – nurdyguy