JS深拷贝
ES6扩展运算符实现数组的深拷贝
用下面的方法实现数组的深拷贝是最简单的。
1 | var arr = [1,2,3,4,5] |
太妙了!
这就不得不提一提ES6:扩展运算符了:
1. 替换apply
扩展运算符可以展开数组,代替
apply()
将数组转化为函数参数的需求。
1 | //ES5 |
2. 合并数组
1 | //ES5 |
3. 结构赋值
1 | var [a, ...b] = [2,3,4,5,6]; |
当扩展运算符用于数组赋值,只能放在参数的最后一位,否则会报错。
4. 对象的扩展运算符
1 | var {a, b, ...c} = {a : 12, b : 23, d : 34, c : 345} |
5. 把字符串转化为数组
1 | var strArr = [...'kiwi'] |
扩展运算符还解决了JavaScript 将 32 位 Unicode 字符,识别为 2 个字符的问题。
太牛了吧! riririririiriririr!
简单的深拷贝:
1 | function jsonClone(obj) { |
阿远的深拷贝!
1 | //深拷贝 |