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

JavaScript

Posted by arkgame