【问题标题】:Is there a method that returns all properties of an object in javascript? [duplicate]有没有一种方法可以在javascript中返回对象的所有属性? [复制]
【发布时间】:2017-07-20 14:44:11
【问题描述】:

Object.keys(obj) 返回对象自己的可枚举属性,这类似于 Object.hasOwnProperty() 是真的。我正在寻找的是一个函数,它甚至可以从原型链中提供所有属性

【问题讨论】:

  • for in 将遍历原型链中的每个属性。

标签: javascript


【解决方案1】:

使用for ... in 遍历对象的所有属性:

var myObject = {ownProp: 1};

for (let prop in myObject) {
        console.log(prop);
}

【讨论】:

  • 谢谢,我已经使用它并创建了Object.allKeys = function(o){ var arr = []; for (let prop in o) { arr.push(prop); } return arr; } 希望这是正确的。
  • @Neelotpal 有用吗?
【解决方案2】:

此问题已回答here。它没有内置方法。

Bergi 的建议:(使用.getPrototypeOf() 向上遍历原型链,递归获取每个对象的属性)

var myObj = {ownProp1:1, ownProp2:2};

function logAllProperties(obj) {
     if (obj == null) return; // recursive approach
     console.log(Object.getOwnPropertyNames(obj));
     logAllProperties(Object.getPrototypeOf(obj));
}
logAllProperties(myObj);

【讨论】:

    猜你喜欢
    • 2013-01-09
    • 2020-12-26
    • 2019-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    • 2020-01-21
    • 2022-08-15
    相关资源
    最近更新 更多