2016-04-28 38 views
0

Ist es möglich, den Namen eines Objekts in Javascript auszugeben? Im folgenden Skript übergebe ich das window Objekt an eine Funktion und gebe die Attribute aus.Wie erhält man den Objektnamen?

var Output = ""; 

function OutputAttributes(pObject) 
{ 
    var x = ""; 

    for (var Attribute in pObject) 
    { 
     x = x + "<li>"+pObject+"." + Attribute + ": " + pObject[Attribute] + "</li>"; 
    } 
    return x; 
} 

Output = OutputAttributes(window); 

document.write("<h2>Attributes from Objekt <i> <\/i><\/h2>"); 
document.write("<ol>"+Output+"</ol>"); 

Wenn ich meine obigen Code ausführen, dann erhalte ich folgende Ausgabe:

[object Window].close: function close() { [native code] } 
[object Window].stop: function stop() { [native code] } 
[object Window].focus:function focus() { [native code] } 

Aber ich erwartete etwas wie folgt aus:

window.focus:function focus() { [native code] } 
+0

nicht in allgemeiner Weise, nein. –

+0

Also wäre der einzige Weg, etwas wie 'RegEx' zu verwenden? – Black

+2

'Fenster' ist nur ein Variablenname. Was ist, wenn du 'a = b = {}' gemacht hast? Wie heißt das Objekt dort? –

Antwort

5

Es ist nicht möglich, in JavaScript, weil Argumente in dieser Sprache werden nach Wert oder Verweis, nicht nach Name übergeben, also wenn Variable an Funktion übergeben wird, ist ihr Name verloren.

0

<script> 
 
var str ="[object Window].focus:function focus() { [native code] }"; 
 
str = str.replace("[object",""); 
 
strlast=str.replace("Window]","Window"); 
 

 
alert(strlast); 
 
</script>

+2

Jetzt versuchen Sie es mit anderen Variablennamen und Referenzen ... –

Verwandte Themen