Node.js console.log(object)打印空对象
Node.js console.log(object) prints empty object
我很好奇Node.js通过console.log(object(.打印对象的方式
我在一个文件constructor.js 下有以下代码(来自《学习Javascript设计模式》一书(
var defineProp = function(obj, key, value){
var config = {
value: value,
writable: true,
configurable: true
};
Object.defineProperty(obj, key, config );
}
var person = Object.create(Object.prototype);
defineProp(person, "car", "Delorean");
defineProp(person, "dateOfBirth", "1981");
defineProp(person, "hasBeard", false);
console.log(person); //This prints {} in Node.js
使用>node constructor.js
运行该代码将打印一个空对象。然而,Chrome会打印出我在HTML文件中运行代码时所期望的内容。
console.log(person); //Chrome prints Object {car: "Delorean", dateOfBirth: "1981", hasBeard: false}
注意:我仍然可以打印Node下的属性(如console.log(person.car)
(,只是不能打印对象本身(如console.log(person)
(
为什么会这样?Chrome和Node是否使用单独的控制台对象原型,即使它们共享相同的javascript引擎?
节点中的console.log()
使用util.inspect()
,后者在对象上使用Object.keys()
,后者只返回自己的可枚举属性。此外,默认情况下,如果未明确设置为true
,则Object.defineProperty()
会设置enumerable: false
。
相关文章:
- 同时打印对象的属性和值Javascript
- 如何在JavaScript中打印对象的值
- 如何使用HTML5中的sessionStorage概念在Javascript中打印对象数据
- 从数组中快速打印对象,然后循环
- Handlebars在渲染时部分打印[对象对象]
- Handlebars.js打印对象没有'不起作用
- JavaScript - 如何打印对象中的所有值
- 如何从 JavaScript 对象获取打印对象“B”和“C”
- 当对象本身存储在 JavaScript 的数组索引中时,如何打印对象的每个单独属性
- 在对象中打印对象
- 为什么控制台打印数组中的对象而不打印对象
- 无法使用ng重复打印对象的值
- 从父对象内部的相邻对象打印对象会导致'未定义'消息
- 使用console.log()打印对象的方法
- 使用ng重复打印对象数组
- 如何打印对象html
- 打印对象数组javascript
- 如何在for内循环中打印对象属性
- 打印对象的所有隐藏属性
- 打印对象中属性值的javascript代码