例如:
const arr = [1,2,3];
arr.push(4); //4
console.log(arr) //[1,2,3,4]
我希望这个数组是不可变的。它不应允许推送或添加/删除 arr 值。
Object.freeze
数组上工作得很好,因为数组也是对象:
const arr = [1,2,3];
Object.freeze(arr);
arr.push(4); // attempting to push throws
数组
是对象 - 所以它会正常工作:
const arr = [1, 2, 3];
Object.freeze(arr);
arr.push(4);
arr[arr.length - 1] = 4;
索引分配方法也失败:
const arr = [1, 2, 3];
Object.freeze(arr);
arr[arr.length - 1] = 4;
是的,你可以Freeze array
const arr = [1,2,3];
Object.freeze(arr)
arr.push(5);
注意:- 它会做浅冻结,
const arr = [1, 2, {key: 123}];
Object.freeze(arr)
arr[2].key = 'changed value'
console.log(arr)