2010-11-25 10 views
1

나는 여기에 뭔가 빠져 있다고 생각하지만 실제로 무엇인지 모르겠습니다. 함수 밖에서 선언 된 변수가 전체 페이지에서 사용할 수 있어야합니까? 제가 여기서 시도하고있는 것은 이미 전에 보았던 것입니다. 그래서 나는 기본적인 생각이 효과가 있다고 생각합니다. 이 경우 나는 항상 "거짓"이라고 알려주는 경고 메시지를받습니다. 그래서 항상 skipUserDataEntry가 true 대신 정의되지 않은 값을 가지므로 항상 입력합니다. 누군가가 도울 수 있기를 바랍니다.자바 스크립트 크로스 스크립트 변수 값

<script type="text/javascript"> 
    skipUserDataEntry = true; 
    </script> 

    <script type="text/javascript"> 
     Ext.onReady(function() { 
     if (typeof skipUserDataEntry == "undefined") 
     var skipUserDataEntry = false; 
     alert (skipUserDataEntry); 
     } 
    </script> 

답변

5

몇 가지 문제가 있습니다. 전역 변수가 좋습니다. 그러나 함수 내에서 선언 된 변수는 ANYWHERE이며 범위는 WHOLE입니다.

이 의미는 행 var skipUserDataEntry = false;을 읽을 때 함수 범위에 대해 새로운 변수 skipUserDataEntry을 실제로 선언한다는 의미입니다. 전역 범위를 섀도 잉합니다.

var을 제거하면 전역 유효 범위 변수 만 보게됩니다.

Ext.onReady(function() { 
    if (typeof skipUserDataEntry == "undefined") 
     skipUserDataEntry = false; 
    alert (skipUserDataEntry); 
    }); 

두 번째로 끝 괄호가 없습니다.

+0

누락 된 괄호는 오타였습니다. 다른 것들은 Ext.onReady에서 진행 중이지만 붙여 넣지 않았습니다. 도움을 주셔서 감사합니다, var 작동합니다. –