美文网首页
ES6:扩展运算符(...)与Object.assign()中的

ES6:扩展运算符(...)与Object.assign()中的

作者: 阳光之城alt | 来源:发表于2019-01-14 17:25 被阅读0次
image.png

今天项目中 用到了这【...】扩展运算符出现了问题,
在使用中出现的问题

var obj1 = obj
var obj2 = JSON.parse(JSON.stringify(obj))//深拷贝常用方法
在使用
var obj3 = [...obj2] //出错的地方 估计是深度拷贝了就不允许浅拷贝
 就会报错 当时不知道原因 找了很久 

对象

let site = ['runoob', 'google', 'taobao'];
site.includes('runoob'); 


var obj = {a: 1, b: 2, c: { a: 3 },d: [4, 5]}
var obj1 = obj
var obj2 = JSON.parse(JSON.stringify(obj))//深拷贝常用方法
var obj3 = {...obj}
var obj4 = Object.assign({},obj)
obj.a = 999
obj.c.a = -999
obj.d[0] = 123
console.log(obj1) //{a: 999, b: 2, c: { a: -999 },d: [123, 5]}
console.log(obj2) //{a: 1, b: 2, c: { a: 3 },d: [4, 5]}
console.log(obj3) //{a: 1, b: 2, c: { a: -999 },d: [123, 5]}
console.log(obj4) //{a: 1, b: 2, c: { a: -999 },d: [123, 5]}

数组

var arr = [1, 2, 3, [4, 5], {a: 6, b: 7}]
var arr1 = JSON.parse(JSON.stringify(arr))//深拷贝常用方法
var arr2 = arr
var arr3 = [...arr]
var arr4 = Object.assign([],arr)
console.log(arr === arr1) //false
console.log(arr === arr2) //true
console.log(arr === arr3) //false
console.log(arr === arr4) //false
arr[0]= 999
arr[3][0]= -999
arr[4].a = 123
console.log(arr1) //[1, 2, 3, [4, 5], {a: 6, b: 7}]
console.log(arr2) //[999, 2, 3, [-999, 5], {a: 123, b: 7}]
console.log(arr3) //[1, 2, 3, [-999, 5], {a: 123, b: 7}]
console.log(arr4) //[1, 2, 3, [-999, 5], {a: 123, b: 7}]
const data = Object.assign({}, commonParams, { //系统公共的参数
    platform: 'h5',
    uin: 0,
    needNewCode: 1
  })

原文链接
https://blog.csdn.net/ljw1412/article/details/79651725
拖动组件

image.png

Vue Slicksort

相关文章

网友评论

      本文标题:ES6:扩展运算符(...)与Object.assign()中的

      本文链接:https://www.haomeiwen.com/subject/hosjdqtx.html