JavaScript Cannot delete property xxxxの解決方法
環境
Google Chrome 114.0.5735.199(Official Build) (64 ビット)
Windows 11 Pro 64bit
修正前コード
let obj = {name: 'yamada', age: 15};
Object.freeze(obj);
delete obj.age;
エラーメッセージ
Error: Cannot delete property 'age’ of #<Object>
原因
Object.freeze() メソッドはオブジェクトを凍結します。
凍結されたオブジェクトは変更できなくなります。
修正後コード
let obj = {name: 'yamada', age: 15};
console.log(Object.keys(obj).length);
delete obj.age;
Object.freeze(obj);
console.log(Object.keys(obj).length);
実行結果
2
1