Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как получить два разных значения одного объекта (https://javascript.ru/forum/misc/31802-kak-poluchit-dva-raznykh-znacheniya-odnogo-obekta.html)

EvgeniyRRU 21.09.2012 10:06

Как получить два разных значения одного объекта
 
Известный факт, что некое присвоение
var a = someObject{
        property1: 'Value1',
        property2: 'Value2'
};

Просто передаст переменной a ссылку на объект someObject. А при изменении объекта someObject соответственно изменится значение a. Вот тут и встал вопрос, а каким образом возможно куда-то сохранить старое значение someObject, чтобы потом его сравнить с новым значением?

Возможно ли это вообще?:(

ksa 21.09.2012 11:47

Цитата:

Сообщение от EvgeniyRRU
каким образом возможно куда-то сохранить старое значение someObject

Вот поищи там про "clone" :)
http://javascript.ru/tutorial/object/intro

dmitry111 21.09.2012 13:11

Цитата:

Сообщение от EvgeniyRRU (Сообщение 205675)
var a = someObject{
        property1: 'Value1',
        property2: 'Value2'
};


а разве так можно писать?

Разве не так надо:

var someObject = {
        property1: 'Value1',
        property2: 'Value2'
};
var a = someObject;

dmitry111 21.09.2012 13:12

ksa,

не могли бы указать место по конкретней, не нашел (

ksa 21.09.2012 14:31

Цитата:

Сообщение от dmitry111
не могли бы указать место по конкретней

Да первое вхождение "clone" его и показывает! :D

Цитата:

Автор: PieceOfMeat (не зарегистрирован), дата: 29 марта, 2010 - 17:12
#permalink

Прошу прощения если не заметил, но по-моему у вас нигде не написано, что объекты в Javascript передаются и копируются по ссылке.

И было бы интересно увидеть функцию clone, которая делала бы копирование объектов по значению.
Ответить
Цитата:

Автор: B@rmaley.e><e, дата: 30 марта, 2010 - 23:41
#permalink

function clone(obj){
 var newObj = {}, i;
 for(i in obj)
 newObj[i] = obj[i];
 return newObj;
 }


TODO: Добавить рекурсивое клонирование

EvgeniyRRU 21.09.2012 15:24

dmitry111,
прошу прощения за оплошность, писал по памяти, не из кода. Попробую реализовать это клонирование.


Часовой пояс GMT +3, время: 19:53.