그냥 범위 변수는/원하지 않는 경우는 글로벌해야 :
(function() {
var data;
element.onmousedown = function() {
data = precalculate();
}
element.onmouseup = function() {
dosomething(data);
}
})();
편집 : 명확하게하기 위해 자바 스크립트에서 새 변수 범위를 만드는 유일한 방법은 함수에 있습니다.
함수 내에 var
으로 선언 된 변수는 외부 범위에서 액세스 할 수 없습니다. 위의 코드에서
는, 나는 인생을 만들어 단지가 생성되는 즉시 호출되는 함수이고, 나는 배치 (즉시 호출 함수 표현식), 당신의 변수 data
(핸들러 지정과 함께) 그것의 내부.
핸들러는 data
변수에 액세스 할 수있는 범위에서 작성 되었기 때문에 해당 변수에 대한 액세스를 유지합니다.
는 또 다른 예를 제공합니다 :
var a = "a"; // global variable
(function() {
var b = "b"; // new variable in this scope
(function() {
var c = "c"; // new variable in this scope
// in this function, you have access to 'a', 'b' and 'c'
})();
// in this function you have access to 'a' and 'b' variables, but not 'c'
})();
// globally, you have access to the 'a' variable, but not 'b' or 'c'
이것이 내가 알고 싶은 것입니다. –
@ 라이 : 기꺼이 도와 드릴 수 있습니다. 또 다른 변수 범위 예제를 추가했습니다. – user113716