함수 Scope

aydennote·2022년 5월 19일
0

JavaScript

목록 보기
6/7
post-thumbnail
sub add {
    $balance += shift;
}

sub transaction_a {
    local $balance = 0;
    say add(1);
    transaction_b();
    say add(100);
}

sub transaction_b {
    local $balance = 5;
    say add(10);
}

다이나믹 스코프(동적 스코프) : 함수가 실행되는 시점에 상위 스코프가 결정이 된다. transaction_a 함수가 실행되면 add(1)이 실행되는데, add에는 balance 가 없기 때문에 상위 스코프인 transaction_a 의 balance를 가져오게 된다. transaction_b 함수가 실행되면 add(10)의 상위 스코프는 transaction_b 가 된다.

function outer(){
	let a= 10;
    function inner(){
    	console.log(a);
    }
    
    return inner()
}

자바스크립트는 정적 스코프를 사용한다.
렉시컬 스코프(정적 스코프) : 코드가 작성되는 그대로 상위 스코프가 결정된다. inner 함수의 상위 스코프는 outer 이다. 작성된(정의된) 그대로 스코프가 결정된다.

profile
기록하는 개발자 Ayden 입니다.

0개의 댓글