序文
私たちは、多くの場合、オブジェクトの属性する必要があります。ここで、その記録動作ES5とAPIオブジェクトのプロパティとの間の差。
列挙属性
用/すべて列挙オブジェクト属性を横断して(独自のプロパティを含むとプロパティを継承)
VAR OBJ = {名: "花"、年齢:18である}; VAR = OBJ2 Object.create(OBJ)を、 obj2.like = "骨" ; のため(項目でOBJ2){ // OBJ全て列挙属性名は、文字列の項目に割り当てられているのtypeof =>;商品列 ;はconsole.log(OBJ2 [商品])=>花、骨、18 }
//プロパティとメソッドを継承スキップ
(項目OBJで)のために{ / /プロパティを継承するか、方法はサイクルをスキップします。 IF(!obj.hasOwnproperty(項目)|| typeof演算OBJ [商品] === "機能"){ 続行; } }
object.key():配列内のオブジェクトが所有するプロパティ名のリストを返すこと成分を挙げることができます。
VaRのデータ= {
balabala1: "X" 、
balabala2: "Y" 、
balabala3: "Z" 、
}
Object.keys(データ).MAP(関数(項目){
// アイテム:属性名所有OBJ [アイテム]:属性値
はconsole.log(データ[商品]);
})
Object.getOwnPropertyNames() :非可算含め、自分の財産のすべての名前のリストを返します。
検出プロパティ
オペレータに:左の属性名は、文字列、右のオブジェクトです。オブジェクトまたはオブジェクトの継承プロパティを持っている場合、このプロパティはtrueを返します。
VAR OBJ = {名: "小花"}。
console.log(OBJで"名");
Object.hasOwnProperty() :偽プロパティの戻りを継承し、オブジェクトが自身の財産であるかどうかを検出するために、属性名の文字列を受け取ります
propertyIsEnumerable() :プロパティは、プロパティの所有で、列挙時間がtrueを返す場合にのみ強化されたバージョンhasOwnPropertyを
プロパティを削除します。
オブジェクトのプロパティを削除するには削除します。彼のオペランドは、プロパティアクセス式でなければなりません。
値の型がブールでの文のリターンを削除します。
//は、の場合に真を返す
0 = {X :. 1}; // O X独自の性質を有しており、属性のtoStringを継承
削除 OXを、//は、真のXが戻りを削除する
削除 OXを; // この場合には、X Oプロパティを持っていません、OX =「未定義。未定義の削除を同一視、
削除 o.toString; //は、プロトタイプ継承されたプロパティを削除することはできません。また、trueに返す
// falseに戻り
、削除のObject.prototype; // 属性は、削除することはできません配置されていない
のvar I = 0が; // グローバル変数を宣言し
削除 Iを、この .I; //は属性グローバル変数を削除することはできません
機能 Fを() {}; // グローバル関数は、宣言
削除 Fを、この.F // グローバル関数を削除することはできません
いくつかの奇妙な行動を削除し、いくつかのことがあります注:
1は、それは性質がフェッチ操作されていない属性、属性のみとオブジェクトのリンクが切断されています。
2、唯一自分自身のプロパティを削除します。
3、属性は設定不可能削除することはできません。
図4は、プロトタイプのプロパティを削除することはできません。
5、プロパティアクセス式の値が定義されていない場合でも、その後、それは返すも同様です。