我使用的是 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"
然而在这两种情况下,当我检查变量 f1 和 b1 时,DevTools 控制台将显示名称“foo”和“bar”。
如何像 DevTools 那样为 f1 提取 name foo?
最佳答案
V8 可以在解析阶段执行函数名称推断,通过其 API 公开此信息。您将无法使用普通对象属性提取此信息。
关于javascript - DevTools 如何确定对象的构造函数名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12944719/