JavaScript에서 함수의 외부 변수 접근
다음 코드를 살펴보겠습니다:
let num = 1; // 변수 값 설정
function func() {
console.log(num); // 콘솔에 출력
}
func(); // 함수 호출
이전에 언급한 바와 같이, 변수 값은 함수 정의 앞에 있을 필요는 없지만, 함수 호출 전에 위치해야 합니다:
function func() {
console.log(num);
}
let num = 1;
func();
사실 이 설명은 완전히 정확하지 않습니다. 우리 함수는
호출되기 전에도 변수
num의 값을 알고 있습니다:
let num = 1;
function func() {
console.log(num); // 함수는 이미 num = 1임을 알고 있음
}
다음은 더 복잡한 예제입니다:
let num = 1; // 이 시점에 함수는 num = 1임을 인지함
function func() {
console.log(num);
}
num = 2; // 이 시점에 함수는 num = 2임을 인지함
함수 호출을 추가해 보겠습니다:
let num = 1; // 이 시점에 함수는 num = 1임을 인지함
func(); // 1 출력
function func() {
console.log(num);
}
func(); // 1 출력
num = 2; // 이 시점에 함수는 num = 2임을 인지함
func(); // 2 출력
다시 한번 강조합니다: 사실 함수는 호출되지 않았더라도 외부 변수의 값을 알고 있습니다.