在 JavaScript 中复制冻结数组有什么缺点吗?
Any downsides to copying frozen array in JavaScript?
在JavaScript中,数组是对象,对象可以被冻结,所以我想这可以做到?
const frozenArr = Object.freeze([1, 2, 3, 4, 5])
因此
//frozenArr.push(6) //does not work, "Cannot add property 5, object is not extensible..."
但是,如果我从冻结的数组创建一个新数组
const anotherArr = Array.from(frozenArr)
然后
anotherArr.push(6) // works
我的问题是,复制冻结数组有什么缺点吗?它的原型是哪个,它是否从中继承了任何不需要的属性?提前致谢!
只有downside?
可能是你在克隆原来的object/array从而使内存翻倍!否则,你肯定可以复制对象,但它无论如何都与第一个对象无关。任何更新都不会影响原来的 array/object.
在JavaScript中,数组是对象,对象可以被冻结,所以我想这可以做到?
const frozenArr = Object.freeze([1, 2, 3, 4, 5])
因此
//frozenArr.push(6) //does not work, "Cannot add property 5, object is not extensible..."
但是,如果我从冻结的数组创建一个新数组
const anotherArr = Array.from(frozenArr)
然后
anotherArr.push(6) // works
我的问题是,复制冻结数组有什么缺点吗?它的原型是哪个,它是否从中继承了任何不需要的属性?提前致谢!
只有downside?
可能是你在克隆原来的object/array从而使内存翻倍!否则,你肯定可以复制对象,但它无论如何都与第一个对象无关。任何更新都不会影响原来的 array/object.