JavaScript - closure

yeong ·2022년 11월 17일

js

목록 보기
14/49

클로저 함수 : 함수 내부에서 선언된 함수(내부함수)를 반환받아 함수 외부에서 호출하는 함수

외부함수 안에 내부함수 선언과 사용

function outer() {
function display() {
			alert("outer 함수 내부에 선언된 display 함수의 명령 실행");
		}
		//display();//내부함수는 선언된 함수에서만 호출 가능
		return display;//함수명을 이용하여 함수 반환
  }
	display();//내부함수를 함수 외부에서 호출한 경우 에러 발생 -error
	outer();//외부함수를 호출하면 내부함수가 생성되어 호출 가능 
	var inner=outer();//외부함수를 호출하여 내부함수를 반환받아 변수에 저장
	inner();//함수변수를 이용하여 반환받은 내부함수 호출 - 클로저 함수
//외부함수를 호출하여 반환받은 내부함수를 변수에 저장하지 않고 직접 호출 가능
	outer()();
	function closure(name) {
		//익명함수를 생성하여 반환
		return function() {
			//내부함수에서는 외부함수의 변수 사용 가능
			alert(name+"님, 안녕하세요.");
		}
	}
	<br>
	//closure("홍길동")();
	closure("임꺽정")();
	}

0개의 댓글