获取对象的所有属性

时间:2014-06-27 00:49:12

标签: javascript node.js ecmascript-5

JavaScript是否有办法获取所有对象的属性,包括内置属性? for... in跳过内置属性,这通常是您想要的,但在这种情况下不是。如果重要的话,我使用Node.js,并且它用于调试目的,因此它不必优雅,快速或便携。

2 个答案:

答案 0 :(得分:3)

是的,只需通过原型并获得所有属性

function getAllProperties(o) {
    var properties = [];
    while (o) {
        [].push.apply(properties, Object.getOwnPropertyNames(o))
        o = Object.getPrototypeOf(o);
    }
    //remove duplicate properties
    properties = properties.filter(function(value, index) {
        return properties.indexOf(value) == index;
    })
    return properties;
}

答案 1 :(得分:0)

嗯,对于调试你可以使用它:

console.log(yourObject);

简单快捷。在节点和浏览器中。 :)