Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как заставить две переменные ссылаться на один и тот же объект в памяти? (https://javascript.ru/forum/misc/52592-kak-zastavit-dve-peremennye-ssylatsya-na-odin-i-tot-zhe-obekt-v-pamyati.html)

xtfkpi 25.12.2014 19:42

Как заставить две переменные ссылаться на один и тот же объект в памяти?
 
Доброго дня, уважаемые JavaScript-гуру. Обыскал по справке и по руководству - не могу понять как заставить две переменные ссылаться на один и тот же объект в памяти?
делаю cb=b=1;
и после изменения b, в cb остается старое значение. можно ли сделать так чтобы при изменении b, то же значение было бы и в cb?

melky 25.12.2014 19:45

в нашем императивном языке так низя

MallSerg 25.12.2014 20:43

Стандарт явно говорит что примитивные типы копируются по значению;

т.е. в строке "cb=b=1" переменным присваивается значение примитивного типа и никак такое поведение обойти невозможно;

но можно добиться схожего поведения через сеттеры и гетеры
function MyType (par){
	this._val = par;
};
MyType.prototype = {
	set val(p) {return this._val = p},
	get val() {return this._val}
};
cd = b = new MyType (1);;

b.val = 15;
alert (cd.val);

b.val = b.val + b.val + b.val;
alert (cd.val);

к переменным придется обращатся не как к "cd" , "b" а как "cd.val" и "b.val"
IE не поддерживает стандарт по этому такой код там может не работать


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