以下のため...で、Object.keys、Object.getOwnPropertyNames

個人的な要約:

1.for ...トラバーサルにオブジェクトとそのプロトタイプに可算財産であります

アレイで得2.Object.keysは、オブジェクト自体がプロトタイプに列挙しない特性を含む、属性を列挙することができます

アレイで得3.Object.getOwnPropertyNames、オブジェクト自体が列挙特性および列挙ではありません

 

 

 

 

機能人(){
this.name = 'トム' //列挙
this.age = 24 // enumrable
this.c =関数(){// enumrable
console.log( '1')
}
}

People.prototype.look =関数(){// enumrable
console.log(「これを見て」)
}


VaRのB =新しい人々()

bは属性を列挙されていないとして//利用Object.definePropertyは「セックス」を追加します
Object.defineProperty(B 'セックス'、{
値:「女」
//列挙:Object.definePropertyで偽列挙デフォルトはfalseで、で、
})


/ **
*共通属性名、年齢は、cが対象です(デフォルト可算)
*プロトタイプオブジェクトを見(デフォルト可算)
*セックスを列挙することはできません
* /


//オブジェクトをナビゲート中に列挙することができますのための属性
(Bでのvar I){用
console.log(I)
}

console.log( '==================')

アレイが得られる// 2つObject.keys、コンテンツ自体は、列挙属性は属性列挙プロトタイプを含みません
console.log(Object.keys(b)参照)

console.log( '==================')

アレイが得られる// 3、Object.getOwnPropertyNames、(プロトタイプの内容を含まない)内容(列挙しない列挙を含む)すべてのプロパティ
console.log(Object.getOwnPropertyNames(b)参照)
 
 
結果:
 

おすすめ

転載: www.cnblogs.com/eret9616/p/11209776.html