как разпринтить все существующие переменные
пробовал сделать так
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, время: 16:16. |