Показать сообщение отдельно
  #23 (permalink)  
Старый 21.01.2011, 13:13
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

да не при чем тут обращение через document.<имя элемента>, к тому же оно работает не для всех элементов

а причина в том, что глобальные переменные - свойства глобального объекта (упрощенно, см. ниже)
<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script type="text/javascript">
        for( var k in window ){
            var v =   k == 'name'   ? eval(k)   : '';
            document.write(k+': '+v+'<br>');
            // document.write(k+': '+window[k]+'<br>');
        }
    </script>
</body>
</html>


ну и в дополнение объявление переменной через var и создание переменной без var - это не то же самое
<script>
var a = 1;   // создаем глобальную переменную
b = 2;   // создаем свойство в глобальном объекте (window)
alert( a );
alert( b );
alert( delete a );   // нельзя удалить глобальную переменную
alert( delete b );
try {
    alert( a );
} catch( e ){ alert(e); }
try {
    alert( b );
} catch( e ){ alert(e); }
</script>
Ответить с цитированием