Показать сообщение отдельно
  #1 (permalink)  
Старый 29.01.2014, 18:16
Новичок на форуме
Отправить личное сообщение для rubo-21 Посмотреть профиль Найти все сообщения от rubo-21
 
Регистрация: 29.01.2014
Сообщений: 4

Почему стал pointer-ом?
Привет всем.
допустим у меня есть такой код:
var obj1 = {
	a: 1,
	b: 2,
};

var obj2 = {
	a: 3,
	b: 4,
};

var array1 = [obj1,obj2];
var array2 = array1;

console.log('array1');
console.log(array1);
console.log('array2');
console.log(array2);

array2.splice(0, 1);

console.log('array1');
console.log(array1);
console.log('array2');
console.log(array2);


и вот результат кода:


мне интересно почему array2 стал pointer-ом array1?
вить это "=" не оператор присваивания?

Пожалуйста объясните почему это происходит и как обойтись?

Дополнения:
<script>

var obj1 = {
	a: 1,
	b: 2,
};

var obj2 = {
	a: 3,
	b: 4,
};

var array1 = [obj1,obj2];
var array2 =  new Array;

for(var i=0;i<array1.length;i++){
	array2.push(array1[i]);
}

console.log('array1');
console.log(array1);
console.log('array2');
console.log(array2);

array2.splice(0, 1);

console.log('array1');
console.log(array1);
console.log('array2');
console.log(array2);

</script>




вот так я получаю то что хочу,но мне кажется что это не очень хорошая решения.

Последний раз редактировалось rubo-21, 29.01.2014 в 18:54. Причина: Дополнения
Ответить с цитированием