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