Object.getOwnPropertyNames()

时间:2017-04-16 18:32:29

标签: javascript object

使用框架时(在本例中为Phaser.js)我喜欢使用控制台并查找对象的可能属性

Object.getOwnPropertyNames(myObject)

然而,某些属性不会出现在控制台中,我认为是由于该对象不是“拥有 PropertyNames”。还有办法让它们在控制台中显示吗?

我基本上都在寻找像

这样的东西
Object.getAllPropertyNames(myObject)

有人可以帮帮我吗?我是JS新手:)

2 个答案:

答案 0 :(得分:2)

如果您使用的是Google Chrome的DevTools,则可以通过调用dir(myObject)来查看对象的所有属性:

enter image description here

答案 1 :(得分:1)

只需使用for ... in循环遍历所有属性。这也会绕过父母"属性。



// example data
var o = { 
  a: "a1",
  b: "b1"
}

var parent = { 
  c: "c1",
  d: "d1"
}
// set parent, just for the example
Object.setPrototypeOf(o, parent);
  
// loop over all
for (key in o)
{
  console.log('prop "' + key + '" with value "' + o[key] + '"');
}




嵌套示例:



var game =  {
  stage :{
    test1 : 'v1',
    test2 : 'v2'
    
  }
   
}

for (key in game.stage) 
 { console.log(key + '" with value "' + game.stage[key] + '"'); }