2016-04-28 140 views
0

是否可以在JavaScript中輸出對象的名稱? 在下面的腳本中,我將window對象傳遞給一個函數並輸出屬性。如何獲取對象名稱?

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>"); 

如果我執行我上面的代碼,然後我得到的輸出是這樣的:

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

但我希望是這樣的:

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

不能在一個通用的方法,沒有。 –

+0

所以唯一的方法是使用像'RegEx'的東西? – Black

+2

'window'只是一個變量名。如果你做了'a = b = {}'會怎麼樣?那裏的對象的名稱是什麼? –

回答

5

這是不可能在JavaScript中,因爲參數在這種語言中,通過值或引用傳遞,而不是通過名稱傳遞,所以當變量傳遞給函數時,其名稱會丟失。

0

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

 
alert(strlast); 
 
</script>

+2

現在嘗試一些其他變量名稱和引用... –