JavaScript では、delete 演算子を使用してオブジェクト内のプロパティを削除できます。
このプロパティ削除操作の制限は、削除演算子が削除できるのはオブジェクト自体のすべてのプロパティのみであり、プロトタイプ オブジェクトから継承されたプロパティは削除できないことです。プロトタイプ オブジェクトのプロパティを削除する場合は、プロトタイプ オブジェクトを明示的に取得し、プロトタイプ オブジェクトで操作を実行する必要があります。
プロトタイプ オブジェクトのプロパティが削除されると、そのプロトタイプ オブジェクトを継承するすべてのオブジェクトが影響を受けます。
削除操作の戻り値について、JavaScript は次のルールに従います:
1. 削除操作が成功した場合は、true を返します。
2. 削除操作が効果がない場合 (たとえば、削除するプロパティが存在しない場合)、true を返します。
3. 構成可能な属性が false であるプロパティを削除する場合、厳密モードでは TypeError エラーが報告され、非厳密モードでは false が返されます。
delete 演算子がグローバル オブジェクトのプロパティに作用する場合、非厳密モードでは、コード内のグローバル オブジェクトを省略できます:
厳密モードでは、上記の記述メソッドは SyntaxError をスローすることに注意してください。