Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I'm using Chrome v22.0.1229.94 m, not that it should matter, but just in case :-)

Portability is of no concern to me. As long as it works with Chrome (and Safari) I'm happy.

I have two functions, foo and bar:

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

then if I create objects using them:

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

I can get the constructor's name for bar, but nor for foo:

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

yet in both cases DevTools console will show the names "foo" and "bar" when I inspect the variables f1 and b1.

How do I extract the name foo for f1 as DevTools is able to?

enter image description here

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
129 views
Welcome To Ask or Share your Answers For Others

1 Answer

V8 can perform function name inference at the parsing stage, exposing this information via its APIs. You will not be able to extract this info using the normal object properties.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...