いくつかの方法で取得したJavaScriptオブジェクトのプロパティ

序文

JavaScriptのオブジェクトは、複数のプロパティメソッドを取得しますが、それぞれの方法には、状況を説明するために、以下のことが想定され、さまざまなシナリオです

let c = Symbol.for('这是实例上的属性');
let e = Symbol.for('这是原型上的属性');
let obj = {a:1,b:2,[c]:5};
Reflect.setPrototypeOf(obj,{
  fn:2,
  [e]:8
})
Object.defineProperties(obj,{
  d:{
    value:6,
    enumerable:false
  }
})

Object.keys()

Object.keys(obj).forEach(prop=>{
  console.log(prop);
})
//a
//b

取得インスタンスの属性オブジェクト自体が、それは記号キーが含まれていません。

Object.getOwnPropertySymbols()

console.log('-----------------获取symbol键')
Object.getOwnPropertySymbols(obj).forEach(prop=>{
  console.log(prop);
})
// -----------------
// Symbol(这是实例上的属性)

記号キーを取得したりプロトタイプを得るために

Object.getOwnPropertyNames()

console.log('-----------------不管枚举或者不可枚举都会获取')
Object.getOwnPropertyNames(obj).forEach(prop=>{
  console.log(prop);
})
//a
//b
//d

、まだ記号キーが含まれていませんでしょうかどうか列挙

以下のために...で

for(const prop in obj){
  console.log(prop);
}
//a
//b
//fn

オブジェクトのインスタンスを追加することができ、反復法を使用して、プロトタイプのプロパティを必要に応じて、我々は反復法を使用して、まだ、プロトタイプを取得するプロパティを取得することは、慎重に必要とhasOwnProperty裁判官を

for(const prop in obj){
  if(obj.hasOwnProperty(prop)){
    console.log(prop);
  }
}
//a
//b
公開された85元の記事 ウォン称賛62 ビュー20000 +

おすすめ

転載: blog.csdn.net/qq_36754767/article/details/104339608