【问题标题】:Object.getOwnPropertyNames()Object.getOwnPropertyNames()
【发布时间】:2017-09-12 10:23:04
【问题描述】:

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

Object.getOwnPropertyNames(myObject)

但是,某些属性不会显示在控制台中,我认为是由于不是对象的“OwnPropertyNames”。有没有办法让它们仍然显示在控制台中?

我基本上是在寻找类似的东西

Object.getAllPropertyNames(myObject)

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

【问题讨论】:

标签: javascript object


【解决方案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] + '"'); }

【讨论】:

  • 谢谢朱利安。如果我有对象“game”并且它具有属性“stage”,我如何使用 for ... in 循环来获取“game.stage”中/后面的每个属性?
  • for (key in game.stage) ...
  • 如果我这样尝试for (key in game.stage) { console.log(key + '" with value "' + game.stage[key] + '"'); },控制台会返回“nothing”`...
  • 添加了game.stage 示例。也许脚本很快就会运行? (应该在 DOM 加载后运行)
【解决方案2】:

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

【讨论】:

猜你喜欢
  • 2014-05-04
  • 1970-01-01
  • 2013-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-15
  • 2016-09-16
相关资源
最近更新 更多