[JS] 클로저 / Arguments

다인·2022년 8월 8일
0

JavaScript

목록 보기
8/9

클로저

: 내부함수가 외부함수의 맥락(context)에 접근할 수 있는 것

내부함수

함수안에서 또다른 함수 선언

function outter() {  //외부함수
	function inner() {  //내부함수
		var title = 'hi';
      	alert(title); //내부함수는 외부함수의 지역변수에 접근 가능. 
    }
	inner();
}
outter();

외부함수가 소멸된 이후(return)에도 내부함수가 외부함수에 접근할 수 있음.

function outter() {
	var title='hi';
  	return function() {
		alert(title);
    }
}
inner = outter();
inner();

응용

var arr= []
for(var i=0; i<5; i++){
	arr[i]= function(id){
		return function(){
			return id;
        }
    }(i);
}

Arguments

javascript의 특수한 변수 arguments

function one(arg1){
	console.log(
      'one.length', one.length, 
      'arguments', arguments.length
    );
}
one('val1', 'val2'); //one.length == 1, arguments == 2
profile
개발자국

0개의 댓글