javascript - DevTools 如何确定对象的构造函数名称?

标签 javascript constructor google-chrome-devtools

我使用的是 Chrome v22.0.1229.94 m,这并不重要,但以防万一:-)

我不关心可移植性。只要它适用于 Chrome(和 Safari),我就很高兴。

我有两个函数,foo 和 bar:

var foo = function() {
  ...
}
function bar() {
  ...
}

然后如果我使用它们创建对象:

f1 = new foo();
b1 = new bar();

我可以获取 bar 的构造函数名称,但也不能获取 foo 的构造函数名称:

> f1.constructor.name  ==> ""
> b1.constructor.name  ==> "bar"

然而在这两种情况下,当我检查变量 f1b1 时,DevTools 控制台将显示名称“foo”和“bar”。

如何像 DevTools 那样为 f1 提取 name foo

enter image description here

最佳答案

V8 可以在解析阶段执行函数名称推断,通过其 API 公开此信息。您将无法使用普通对象属性提取此信息。

关于javascript - DevTools 如何确定对象的构造函数名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12944719/

相关文章:

google-chrome - 从 Chrome 开发工具中的网络选项卡预览复制变量

javascript - javascript 中的 jSTL

javascript - Ajax 和 PHP 表单 - 500(内部服务器错误)

google-chrome-devtools - 时间轴面板上的火焰图中绿色虚线竖线代表什么?

java - 将 TAI 时间转换为 Java 即时时间

c++ - 混合基类的虚拟和非虚拟继承

javascript - 为什么 Chrome 在 jQuery 中的某行暂停?

使用 if(foo) 的 Javascript 存在检查是否设置了变量

javascript - 如果从 Facebook 共享,则重定向到页面

c++ - 默认复制构造函数和复制赋值赋值运算符给出奇怪的错误