Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Какая разница в коде? (https://javascript.ru/forum/misc/14182-kakaya-raznica-v-kode.html)

DimonCry 04.01.2011 18:33

Какая разница в коде?
 
<script language="javascript">
function func()
{for (i in window.event)
	document.f.t.value=document.f.t.value + i + ': ' + window.event.i + ';\n';
	
	document.f.t1.value='type: ' + window.event.type + '\n';
}

</script>

<form method="post" name="f">
<input onclick="func()" name="b" type="button" value="Кнопка" /><br />
<textarea name="t" cols="40" rows="10"></textarea><br />
<textarea name="t1" cols="40" rows="10"></textarea><br />

</form>


есть кнопка и 2 области текста, хочу, чтобы при клике на кнопку выводилась вся информация о событии.
когда вывожу в цикле for (i in window.event), то в области текста №1 получаю значения undefined,
{for (i in window.event)document.f.t.value=document.f.t.value + i + ': ' + window.event.i + ';\n';


а как только пробую своими руками получить результат, то все получается, припустим, type нормально показывает что событие было
clickdocument.f.t1.value='type: ' + window.event.type + '\n';

Aetae 04.01.2011 18:51

a={b:10}
c='b'
alert([
a[c]!=a.c,
a[c]==a.b,
a.c==undefined
])

DimonCry 06.01.2011 12:25

Спасибо, разобрался!
Т.е. i в моем примере это строка, а не переменная свойства объекта!?

DimonCry 06.01.2011 12:41

Еще один интересный вопросик, как сделать так, чтобы при вводе имени какого-то объекта, показывались его свойста и значения?
<script language="javascript">

function func()
{e=document.f.t3.value;
	for (i in e)
	document.f.t.value=document.f.t.value + i + ': ' + e[i] + ';\n';
	
}

</script>

<form method="post" name="f">
<input name="t3" type="text" value="window" size="15" maxlength="25" />
<input onclick="func()" name="b" type="button" value="Кнопка" /><br />
<textarea name="t" cols="40" rows="10"></textarea><br />
</form>

Aetae 07.01.2011 01:04

<script *!*type="text/javascript"*/!*>

function func() {
*!*var*/!* e=new Function('', 'return '+document.f.t3.value)();
for (*!*var*/!* i in e)document.f.t.value+=i + ': ' + e[i] + ',\n';
}

</script>

<form method="post" name="f">
    <input name="t3" type="text" value="window" size="15" maxlength="25" />
    <input onclick="func()" name="b" type="button" value="Кнопка" /><br />
    <textarea name="t" cols="40" rows="10"></textarea><br />
</form>


Часовой пояс GMT +3, время: 07:20.