XPLATFORM 101
728x90
변수를 선언할때 변수를 사용할 수 있는 범위가 정의됩니다.
예를 들어 특정 function 내에서 변수를 정의했다면 다른 function에서는 사용할 수 없습니다.
function a()
{
var result = 10 + 20;
}

function b()
{
trace(result);
}
위와 같은 코드에서 a()를 실행하고 b()를 실행한다면
~는 선언되지 않은 식별자입니다. 라는 메시지가 출력됩니다.
b()를 실행하는 시점에서 result 라는 변수가 없다는 것이지요.

하지만 살짝 코드를 바꾸어지면 상황이 달라집니다.
function a()
{
result = 10 + 20;
}

function b()
{
trace(result);
}
이렇게 되면 result 는 암묵적으로 전역변수로 선언이 되고
b() 메소드에서 사용할 수 있습니다.

교과서(?)를 보면 이런 암묵적 전역은 가능하면 피하라고 조언합니다.
아래와 같은 경우에도 암묵적 전역이 적용됩니다.
function a()
{
var a = b = 0;
}
언뜻 보면 a, b 모두 전역변수가 아닌것 같지만
b 는 암묵적 전역으로 인정되어 전역변수처럼 동작하게 됩니다.

http://cafe.naver.com/xplatform101/329 

댓글을 달아 주세요