谷歌开发工具观察窗口中注释(内部属性)的含义是什么?

时间:2017-01-07 13:14:03

标签: javascript google-chrome google-chrome-devtools

有人请在google开发者控制台中:之后解释这些注释的含义吗?

enter image description here

例如,当我在控制台中输入baz时,它会返回一个带有注释Foo的三角形。这Foo是什么意思?

Object__proto__: Object的含义是什么?

enter image description here

另一个问题是,当我将鼠标悬停在蓝色的i按钮上时,它会提示Value below was evaluated just now。这是什么意思?

我试图找到这些问题的一些参考但却失败了。任何资源都会受到欢迎。

1 个答案:

答案 0 :(得分:2)

  

这个Foo是什么意思?

它是用于创建此对象的构造函数的名称。

function Foo(){} // constructor function
new Foo()

  

proto :Object中对象的含义是什么?

它是原型链中的下一个原型,对象baz继承自。

尝试这个稍微复杂的例子:

function Bar(){}
Bar.prototype.someFunction = function(){}
function Foo(){}
Foo.prototype = Object.create(Bar.prototype, {}) // or Foo.prototype = new Bar()
new Foo()

Foo原型链中的第一个值是Bar对象的一个​​实例。 Bar对象也有一个原型,但它只是一个未命名的对象(它没有像Foo或Bar那样的构造函数)。

那个对象也有一个原型,它只是所有对象继承的通用Object.prototype

  

另一个问题是,当我将鼠标悬挂在小蓝i按钮上时,它会提示刚刚评估下面的值。这是什么意思?

这意味着对象显示的是现在的属性值,而不是记录时的值。

举个例子:

var obj = {a: 20}
console.log(obj)
obj.a = 100

首先,DevTools将打印对象的基本快照:

但是当您展开对象时,DevTools会使用对象的当前值而不是使用快照。