是否有一个方法可以返回javascript中对象的所有属性?
是否有一个方法可以返回javascript中对象的所有属性?,javascript,Javascript,Object.keys(obj)返回对象自身的可枚举属性,这类似于Object.hasOwnProperty(),后者为true。我要寻找的是一个函数,它将提供所有属性,甚至来自原型链,用于迭代对象的所有属性: var myObject={ownProp:1}; for(让道具插入myObject){ 控制台日志(道具); }用于迭代对象的所有属性: var myObject={ownProp:1}; for(让道具插入myObject){ 控制台日志(道具); }这个问题得到了回答。它没有
Object.keys(obj)
返回对象自身的可枚举属性,这类似于Object.hasOwnProperty()
,后者为true。我要寻找的是一个函数,它将提供所有属性,甚至来自原型链,用于迭代对象的所有属性:
var myObject={ownProp:1};
for(让道具插入myObject){
控制台日志(道具);
}
用于迭代对象的所有属性:
var myObject={ownProp:1};
for(让道具插入myObject){
控制台日志(道具);
}
这个问题得到了回答。它没有内置的方法
Bergi的建议:(使用.getPrototypeOf()
遍历原型链,递归地获取每个对象的属性)
var myObj={ownProp1:1,ownProp2:2};
函数logAllProperties(obj){
if(obj==null)返回;//递归方法
log(Object.getOwnPropertyNames(obj));
logAllProperties(Object.getPrototypeOf(obj));
}
对数属性(myObj)代码>这个问题得到了回答。它没有内置的方法
Bergi的建议:(使用.getPrototypeOf()
遍历原型链,递归地获取每个对象的属性)
var myObj={ownProp1:1,ownProp2:2};
函数logAllProperties(obj){
if(obj==null)返回;//递归方法
log(Object.getOwnPropertyNames(obj));
logAllProperties(Object.getPrototypeOf(obj));
}
对数属性(myObj)代码>for in
将在原型链中的每个属性上循环。for in
将在原型链中的每个属性上循环。谢谢,我使用了它并创建了Object.allKeys=function(o){var arr=[];for(让prop in o){arr.push(prop);}return arr;}
希望这是正确的。@Neelotpal成功了吗?谢谢,我使用了它并创建了Object.allKeys=function(o){var arr=[];for(让prop进入o){arr.push(prop);}return arr;}
希望这是正确的。@Neelotpal成功了吗?