小编Dig*_*000的帖子

如何迭代对象原型链中的所有属性?

我有一个es6类实例,我需要获取它的所有属性(以及继承的属性).有没有办法在不遍历原型链的情况下做到这一点?

class A {
  get a() {
    return 123;
  }
}

class B extends A {
  get b() {
    return 456; 
  }
}

const b = new B();

for (let prop in b) {
  console.log(prop); //nothing
}

console.log(Object.keys(b)); //empty array
console.log(Object.getOwnPropertyNames(b)); //empty array
console.log(Reflect.ownKeys(b)); //empty array
console.log(Object.keys(Object.getPrototypeOf(b))); //empty array
console.log(Object.getOwnPropertyNames(Object.getPrototypeOf(b))); //["contructor", "b"] -- without "a"
console.log(Reflect.ownKeys(Object.getPrototypeOf(b))); //["contructor", "b"] -- without "a"
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6

5
推荐指数
1
解决办法
858
查看次数

标签 统计

ecmascript-6 ×1

javascript ×1