【发布时间】:2018-06-12 20:55:51
【问题描述】:
如何让console.log()显示所有getter属性?现在,这会打印出{},并带有一个打开它的箭头:
我希望它在控制台中这样打印:{ foo: 1 }。
var obj = {};
Object.defineProperty(obj, 'foo', {
enumerable: true,
get: function(){
return 1
}
});
console.log(obj) // this outputs empty object {}, i want it to output { foo: 1 }
【问题讨论】:
-
即使有可能,直接更改
console.log()也可能是个坏主意。调用 getter 可能期望调用者使用返回/创建的值执行某些任务。因此,如果您将这样的功能直接添加到console.log,那么您可能会意外破坏某些程序逻辑。 -
console.log未标准化。不同的浏览器使用不同的规则来打印对象。这似乎是不必要的努力。
标签: javascript ecmascript-6 getter