javascript エラー「Uncaught TypeError: Cannot delete property ‘xxx’ of 」の解決方法
- 作成日 2022.05.31
- 更新日 2022.12.14
- javascript
- javascript
javascriptで、エラー「Uncaught TypeError: Cannot delete property ‘xxx’ of #」が発生した場合の原因と解決方法を記述してます。厳格モード「use strict」を指定した場合のみに発生します。
環境
- OS windows11 pro 64bit
- Apache 2.4.43
- ブラウザ chrome 108.0.5359.99
エラー内容
以下のコードで発生。
'use strict';
let obj = {name: 'tanaka', age: 15};
Object.freeze(obj);
delete obj.age;
エラーメッセージ
※このエラーは「use strict」を使用した厳格モードのみで発生します。
Uncaught TypeError: Cannot delete property 'age' of #<Object>
画像
firefox(バージョン107)では、以下のエラーとなります。
Uncaught TypeError: property "age" is non-configurable and can't be deleted
画像
原因
「freeze」を使用して、プロパティの編集を禁止したあとに削除しているため
解決方法
禁止する前に削除する
'use strict';
let obj = {name: 'tanaka', age: 15};
delete obj.age;
Object.freeze(obj);
-
前の記事
Vue.js mouseenterイベントを取得する 2022.05.30
-
次の記事
Vue.js mouseleaveイベントを取得する 2022.05.31
コメントを書く