как разпринтить все существующие переменные
пробовал сделать так
function init()
{
for (var k in this)
{
alow += '<li>'+k+"=>"+(typeof this[k])+"</li>\n";
}
document.write('<ul>'+alow+'</ul>');
}
к сожалению ничего не вышло пишет предполагаемое наличие объекта пробовал разпринтить переменную document вот так
function init()
{
for (var k in document)
{
alow += '<li>'+k+"=>"+(typeof document[k])+"</li>\n";
}
document.write('<ul>'+alow+'</ul>');
}
в итоге ничего не получилось пишет тоже самое скажите пожалуйста как это сделпть |
никак
|
tenshi,
кажется у тебя на все вопросы ответ никак. |
scuter, ну все-не все, а вывести содержимое хэша можно. Идея у тебя правильная - пройтись for'ом ... in ... по объекту, выводя ключ и значение по ключу (obj[ключ]) (ну ты вместо значения выводишь тип - не понятно зачем, ну надо, - значит надо ;)).
P.S.: кстати, оба твоих примера рабочие (первый для window, т.к. this в этом случае ссылается на него, во втором - явно - document) - ты просто забыл объявить переменную alow до использования (alow += ...). Просто поставь var allow = ''; в самом начале функции. P.S.[2]: Для дебага можно переписать метод toString в прототипах Object'a и Array'я (как пример - здесь - там в самом низу, листинг 20). |
scuter, видимо потому, что ты вечно хочешь невозможного :-)
|
ds [.code],
большое спасибо, я как то не доглядел это дело с alow сейчас попробовал просмотреть "2 уровень в обьектах" но это дело почемуто не выходит, код вот такой
var alow = '';
document.write('<ul>');
for (var k in this)
{
if(typeof this[k] == 'object')
{
var termo = '';
var ject = eval('this.'+k);
document.write('<li>'+k+"=>"+(typeof this[k])+"(<ul>");
for (var d in ject)
{
document.write('<li>'+d+"=>"+(typeof this[k][d])+"</li>\n");
}
document.write("</ul>)</li>\n");
}
else if(typeof this[k] == 'string')
{
document.write('<li>'+k+"=>"+(typeof this[k])+"("+eval('this.'+k)+")</li>\n");
}
else
{
document.write('<li>'+k+"=>"+(typeof this[k])+"</li>\n");
}
}
document.write('</ul>');
в IE тормозится где то в external а в FF гдето в document-те интересно почему??? tenshi, как видишь нет ничего невозможного. |
Просто для справки: вместо
eval('this.'+k)
можно писать this[k] |
Цитата:
|
scuter,
> интересно почему??? слишком глубокие хэши, к тому же некоторые являются рекурентными (в некоторых свойства имеют ссылку на самих себя) - при обычной рекурсивной организации может быть вообще зацикливание |
Цитата:
|
| Часовой пояс GMT +3, время: 00:22. |