2010-01-11 5 views
0

У меня возникают проблемы с глобальными переменными в JavaScript. Из каждой статьи, которую я прочитал, переменная, объявленная из функции, имеет полную область действия. Но ниже alert(leftMargin); приводит к 'undefined', когда внутри функции;Ошибка глобальной переменной JavaScript

var leftMargin = 36; 
alert(leftMargin); /* '36' */ 

function position(direction) { 
    alert(leftMargin); /* 'undefined' */ 
} 
+2

Как вы называете функцию 'position'? Возможно, есть некоторый код, между которым изменяется переменная. –

+2

Это кажется странным, но глобальные переменные - это просто ярлыки для свойств окна, поэтому 'alert (window.leftMargin);' должен давать вам правильные результаты. – Graza

ответ

5

Вы уверены, что это не определено?

<script type="text/javascript"> 
    var leftMargin = 36; 
    alert(leftMargin); /* '36' */ 
    function position(direction) { 
     alert(leftMargin); /* '36' */ 
    } 
    position(); 
</script> 

Он предупреждает меня 36 раз, как и ожидалось. Он может быть не установлен между определением переменной leftMargin и фактическим вызовом position().

+0

Ах да, это было что-то еще в функции, которая испортила его. Я должен научиться стирать код и работать обратно :) Спасибо за ваше время. – Ben

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