JavaScript_javascriptスキルにおけるオブジェクトプロパティの削除方法の紹介

WBOY
リリース: 2016-05-16 16:23:12
オリジナル
1244 人が閲覧しました

JavaScript では、delete 演算子を使用してオブジェクト内のプロパティを削除できます。


コードをコピー コードは次のとおりです:

var t = {a:42, b:26};
console.log(t);//オブジェクト {a=42, b=26}
t.a を削除;
console.log(t);//オブジェクト {b=26}


このプロパティ削除操作の制限は、削除演算子が削除できるのはオブジェクト自体のすべてのプロパティのみであり、プロトタイプ オブジェクトから継承されたプロパティは削除できないことです。プロトタイプ オブジェクトのプロパティを削除する場合は、プロトタイプ オブジェクトを明示的に取得し、プロトタイプ オブジェクトで操作を実行する必要があります。


コードをコピー コードは次のとおりです:

var o = {x:1, y:2};
var a = Object.create(o);
a.z = 3;
console.log(a);//オブジェクト {z=3, x=1, y=2}
delete a.x;//継承されたプロパティは削除できません
console.log(a);//オブジェクト {z=3, x=1, y=2}
delete a.z;//自身のプロパティを削除できます
console.log(a);//オブジェクト {x=1, y=2}
a.__proto__.x を削除します;
console.log(a);//オブジェクト {y=2}


プロトタイプ オブジェクトのプロパティが削除されると、そのプロトタイプ オブジェクトを継承するすべてのオブジェクトが影響を受けます。

削除操作の戻り値について、JavaScript は次のルールに従います:

1. 削除操作が成功した場合は、true を返します。
2. 削除操作が効果がない場合 (たとえば、削除するプロパティが存在しない場合)、true を返します。
3. 構成可能な属性が false であるプロパティを削除する場合、厳密モードでは TypeError エラーが報告され、非厳密モードでは false が返されます。
delete 演算子がグローバル オブジェクトのプロパティに作用する場合、非厳密モードでは、コード内のグローバル オブジェクトを省略できます:

コードをコピーします コードは次のとおりです:

this.c = 42;
delete c;//delete this.c;
と等しい

厳密モードでは、上記の記述メソッドは SyntaxError をスローすることに注意してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート