Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Возможно передать объект НЕ по ссылке. (https://javascript.ru/forum/jquery/18312-vozmozhno-peredat-obekt-ne-po-ssylke.html)

Telnet 25.06.2011 22:24

Возможно передать объект НЕ по ссылке.
 
entite=new Object();
data=new Array();
	var l=tabs.length;
	for (var q=0;q<l;q++){
		entite.info=$("#"+q+"coord").text();
		entite.typeOfArea=($("a[id="+q+"headerlink]").attr('class')).slice(11);
		entite.shownumber=$("#"+q+"shownumber").prop("checked");
		entite.showchangearea=$("#"+q+"showchangearea").prop('checked');

		data.push(entite);
	}


data
[Object { info="129,17,158,13", typeOfArea="round", ещё...}, Object { info="129,17,158,13", typeOfArea="round", ещё...}]

0
Object { info="129,17,158,13", typeOfArea="round", ещё...}

info
"129,17,158,13"

showchangearea
true

shownumber
true

typeOfArea
"round"

1
Object { info="129,17,158,13", typeOfArea="round", ещё...}

info
"129,17,158,13"

showchangearea
true

shownumber
true

typeOfArea
"round"

Прощу прошения за беспорядочное предоставление результатов работы скрипта просто скопировал их FireBuga

Вообщем проблема как думаю и так видна,
Есть цикл, он формирует массив объектов, но так как объекты в Javascript передаются по ссылке, имеем на выходе массив с последними результатами создания объекта.
Как то можно этого избежать?
Или лучше все это запихать в обычный про нумерованный массив.

Kolyaj 25.06.2011 22:45

Цитата:

Сообщение от Telnet
Возможно передать объект НЕ по ссылке.

Нет.

melky 26.06.2011 02:08

можно клонировать всё это. через for in. в массиве тоже через цикл.

nikita.mmf 26.06.2011 13:53

В jQuery можно клонировать объекты следующим образорм
var cloneObj = function( obj ){ return $.extend(true, {}, obj); }


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