2010-01-11 9 views
0

JavaScript의 전역 변수에 문제가 있습니다. 함수에서 선언 된 변수를 읽은 모든 기사에는 완전한 범위가 있습니다. 그러나 alert(leftMargin); 아래의 값은 함수 내에서 '정의되지 않음'으로 나타납니다.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> 

예상대로 나에게 두 번 경고합니다. 변수 leftMargin을 정의하고 실제로 position()을 호출하는 사이에는 설정되지 않은 것일 수 있습니다.

+0

아, 그 기능을 망칠 수있는 기능이었습니다. 코드를 제거하고 다시 작업하는 방법을 배워야합니다. 시간 내 주셔서 감사합니다. – Ben