Ссылка на объект - PullRequest
       7

Ссылка на объект

1 голос
/ 18 февраля 2012

Я сталкиваюсь со странной проблемой в JavasSript.

Есть три переменные (объявленные как var), все они хранят объект; скажем var object1, object2 и object3.

Хорошо, теперь я назначаю object2=object1 и object3=object1.

И когда я добавляю что-то к object2, оно автоматически добавляется к object3. Странный? : |

Пожалуйста, помогите. Я думаю, что мне здесь не хватает каких-то базовых основ, но я не могу их поймать.

Ответы [ 2 ]

2 голосов
/ 18 февраля 2012

Так как же это странно?

Вы передаете ссылку на объект и не клонируете объект.Таким образом, любая модификация ваших переменных object1 в object3 фактически ссылается на один и тот же объект, таким образом «автоматически обновляя все переменные».

2 голосов
/ 18 февраля 2012

Когда вы присваиваете opject2 = object1, вы не делаете копию object1, вы просто просите, чтобы оба имени ссылались на один и тот же объект. Вам нужно создать новый объект и скопировать в него атрибуты из object1. То, как вы это сделаете, зависит от того, какие библиотеки Javascript у вас есть.

jQuery предоставляет методы копирования , описанные здесь

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