js引用类型的赋值

在开发中,有时候需要将数组或者对象的值赋予其他另一个变量,但是两个变量之间会相互影响,因为在将引用类型的值赋给其他变量时,赋予的其实是内存中的存储地址

  var arr = [1,2,3,4,5]
  var arr1 = arr  // 赋值时传递的是存储空间的地址
  console.log(arr === arr1) // true
  arr1.push(6) // 当arr1改变时.arr也会改变
  console.log(arr) // [1,2,3,4,5,6]
  // 当我们需要单独两个互不影响的变量时
  var template = JSON.stringify(arr)
  arr1 = JSON.parse(template)
  console.log(arr === arr1) // false    这时就会给arr1开辟一个新的存储空间和arr区分开,
 arr1.push(7)
console.log(arr) // [1,2,3,4,5,6]
 

猜你喜欢

转载自www.cnblogs.com/cazj/p/10929195.html