我有一组具有许多getter属性的对象。我希望能够使用console.table
在控制台中打印这些值的子集。当前的实现似乎不允许这样,是否有解决方法?
let obj = {
get prop() {
return "getter";
}
id:1
}
console.table([obj]); // prints only index, and id
console.table([obj], ["prop"]); // prints only index, but still not "prop"
答案 0 :(得分:1)
console.table
api是still non-standard。
目前 - chrome无法使用getters values,如果您要检查Firefox,则所有由getter定义的值都会打印为undefined
。
请注意,这与hasOwnProperty
或'prop' in obj
无关(两者都很棒),但它可能与Object.getOwnPropertyDescriptor
有关。
在您的示例中(适用于Chrome和Firefox):
Object.getOwnPropertyDescriptor(obj, 'id').value
// 1
Object.getOwnPropertyDescriptor(obj, 'prop').value
// undefined
但是,如果是这种情况,我希望Chrome也会显示prop
列(即使其中包含未定义的值)。
您可以使用此代码段在浏览器上进行测试:
let obj = {
get prop() {
return "getter";
},
id:1
}
console.log('Log "t in obj"')
for (var t in obj) {
console.log(t, obj[t]);
}
console.log('')
console.table([obj]);
console.table([obj], ["id"]);
console.table([obj], ["prop"]); // currently returns a column of 'undefined' in firefox, and in chrome that column doesn't exists.