Javascript скопировать объект в ссылочную память - PullRequest
0 голосов
/ 05 июня 2018

Для заданной переменной типа Object в javascript с именем Dest я хочу сделать то, что ссылается на , чтобы изменить значение объекта с именем Value.Предположим, что существует магическое утверждение SetDestAs (Dest, Value), которое делает это

Например

var dest = { a : 3, b : 3};
var ptr = dest;
// ptr.a === 3;
SetDestAs(dest, {a  : 0, b : 3 });
// dest.a === 0
// ptr.a === 0;

Как я могу реализовать SetDestAs?

Что я не хочу делать, так это чтобы SetDestAs изменил объект, на который ссылается dest.В приведенном выше примере очень важно, чтобы изменение также указывало на ptr.

1 Ответ

0 голосов
/ 05 июня 2018

Сложно сказать, что вы хотите сделать, поэтому два ответа:

1.Вы можете изменить свойства объекта dest относится к:

Object.assign(dest, {a: 0, b: 3});

... это то, что я думаю, вы хотите сделать.Пример:

var dest = { a : 3, b : 3};
var ptr = dest;
console.log(ptr.a);  // 3
Object.assign(dest, {a: 0, b: 3});
console.log(dest.a); // 0
console.log(ptr.a);  // 0

2.Если вы хотите изменить , к какому объекту относятся dest и ptr, и только dest в качестве отправной точки, вы не сможете этого сделать.Ничего не поделаешь, начиная с dest, это изменит то, на что ссылается ptr.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...