繁体   English   中英

为什么在Java函数构造函数中'this'不为空

[英]Why 'this' is not empty in function Constructors in Javascript

我有以下代码

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

var sam=new Person("Sam");
console.log(sam);

输出为- 响应

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

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

如果你试试:

console.log(this.firstname);

你会看见:

未定义

山姆

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

console.log(JSON.stringify(this))

但是,这将禁用浏览对象的功能。 如果它只是一个普通对象,则可以执行以下操作:

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

Firefox日志

Object {  } 
Object { firstname: "Sam" }

因此,您的浏览器控制台在骗您

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM