Привет всем.
допустим у меня есть такой код:
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>
вот так я получаю то что хочу,но мне кажется что это не очень хорошая решения.