为什么';这';在Javascript的函数构造函数中不为空

为什么';这';在Javascript的函数构造函数中不为空,javascript,Javascript,我有以下代码 function Person(name){ console.log(this); this.firstname=name; } var sam=new Person("Sam"); console.log(sam); 输出为- 创建新对象时,最初应指向空对象。 为什么有更新的响应?Firefox日志 Object { } Object { firstname: "Sam" } 因此,你的浏览器控制台是在欺骗你当你按下chrome控制台中的“下拉”图标来检查对象

我有以下代码

function Person(name){
  console.log(this);
  this.firstname=name;
}

var sam=new Person("Sam");
console.log(sam);
输出为-

创建新对象时,最初应指向空对象。 为什么有更新的响应?

Firefox日志

Object {  } 
Object { firstname: "Sam" }

因此,你的浏览器控制台是在欺骗你

当你按下chrome控制台中的“下拉”图标来检查对象时,它将开始在该内存位置评估对象本身。因此,当您按下它时,属性
firstname
已经填充

如果您尝试:

console.log(this.firstname);
你会看到:

未定义

萨姆

您也可以使用以下方法进行尝试:

console.log(JSON.stringify(this))
但这将禁用在对象中导航的功能。如果它只是一个普通对象,则可以执行以下操作:

console.log(JSON.parse(JSON.stringify(this)))

输出是-Response
-输出怎么可能是“Response”。。。当然是“人”object@JaromandaX,这是一个图像链接。我知道。。。为什么OP不能在问题
响应
中指出,是一个超链接,显示在code.console.log中设置对象名之前,该对象名已被控制台记录,这可能会产生误导。。。尝试
console.log(JSON.stringify(this))
console.log(JSON.stringify(sam))
获取真实快照谢谢您的解释