伙计们!当使用new关键字创建实例时,我试图列出幕后发生的事情。
下面是我的代码
function F() {}
let f1 = new F()
f1.__proto__到目前为止,我理解的是,当使用new时,将创建一个新对象,其中包含以下两项内容
{
constructor: f <-- this is the constructor function F(), referring to itself
__proto__: Object <-- since this is not sub-classing any other Object, every object except Object inherits from Object.prototype
}这种理解是正确的吗?
当我运行这个程序时,我在控制台中得到了以下内容

Value below was evaluated just now是什么意思?
谢谢
发布于 2019-09-08 16:42:26
简单地说,控制台在按展开图标时对对象进行了评估。这是一个测试。
o = {}。输出将类似于>{}。先别扩张!o对象添加一个属性。o.x = 1x属性。但是输出仍然具有x值。因为..。
值是在您扩展输出时被计算出来的,而不是在它创建的时候。
发布于 2019-09-08 16:31:25
刚才评估了下面的值
基本上意味着,在您正在控制台中查看对象时,所看到的是对象的值。如果您在应用程序代码中使用console.log(someObject),这是非常有用的信息。
它告诉您的是,在浏览器控制台中看到的是someObject的当前值,而不一定是在执行console.log时对象所具有的值(在执行代码时,对象可能有所不同)。
基本上,这是因为它只是引用对象,在控制台窗口中展开它之前,属性/方法是不可见的。
https://stackoverflow.com/questions/57843677
复制相似问题