2016-04-28 3 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

Теперь попробуйте с некоторыми другими именами и ссылками переменных ... –

Смежные вопросы