JavaScript

Closure Function

ToKor 2020. 12. 5. 01:21

Nest 함수를 통해 내부함수는 외부함수의 변수에 접근 가능

/* Ex1 */
function speak(){
  var word = "hello";
  return function say(){
  	console.log(word);
  }
}

// assign syaHello and syaHello reference say()
var sayHello = speak();

// excute
sayHello();   // hello

/* Ex2 */
function name(n){
	return function(a){
   	  return `${n} likes ${a}`;
  }
}

var j = name('John');  //  j == function(a) { return `${n} likes ${a}`;}
                       // outer 함수 실행해서 저장하면, 변수는 이너함수를 참조하게 된다.
console.log(j());  // John likes undefined
console.log(j('Dog'));  // John likes Dog