Wie werden JavaScript-Klassennamen für benutzerdefinierte Klassen in Chrome Dev Tools berechnet?

Ich versuche, die Regeln für das Generieren von Klassennamen in Javascript zu ermitteln. Ich habe dieses Skript in die Chrome Dev Tools-Konsole eingefügt:

var obj = { 
    Constr : function() {  }
};

var obj2 = obj;
console.log(new obj.Constr());
console.log(new obj2.Constr());

obj2.Constr2 = function() {  };
console.log(new obj.Constr2());
console.log(new obj2.Constr2());

Und hier sind die Ergebnisse in der Konsole:

obj.Constr
obj.Constr
obj2.Constr2
obj2.Constr2

Es scheint, dass der Name der Klasse durch die Variable bestimmt wird, der die Konstruktorfunktion ursprünglich zugewiesen wurde. Ich suche nach den genauen Regeln, die CDT verwendet, um diesen Namen zu generieren. Ist dies auch derselbe Name, den der Google Closure Compiler erkennt?

Ich habe versucht herauszufinden, ob ich in Firebug ein ähnliches Verhalten reproduzieren kann, aber ich kann anscheinend keine Klassennamen in der Konsole ausgeben. Weiß jemand als sekundäre Frage, wie man das in Firebug sieht?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage