2013-03-21 2 views
1

У меня есть JSON буквальным следующим образом:Клонирование JSON не работает, как ожидалось

var json_1 = { 
    "name": "Tim", 
    "toys": ["ball", "bat", "lego"] 
}; 

Теперь я клонировать это следующим образом:

var json_2 = json_1; 

Если удалить игрушку из json_1 (используя splice()) похоже, что он удаляется с json_2. Как создать копию, не зависящую друг от друга?

+2

Это *** не *** «JSON literal». Это «** объект ** буквальный». Он не имеет никакого отношения к JSON. –

+1

Это не JSON. Это объект javascript, использующий синтаксис литерала объекта. –

ответ

5

Когда вы делаете:

var json_2 = json_1 

вы на самом деле не «клонирование» объект, вы просто альясинг его. Таким образом, вся операция на json_1 будет отражена на json_2 и наоборот. Чтобы действительно клонировать ваш объект, посмотрите: https://stackoverflow.com/a/728694/2003420