2.2 클로저란?
function outer(){
console.log("It's outside!");
var msg = "message";
var inner = function(){
console.log("It's Inside.");
console.log("Hello " + msg);
}
return inner;
}
var f = outer(); // ==> It's outside!
f();
// ==> It's Inside.
// ==> Hello message
최초에 outer()
함수를 f
변수에 넣을때는 It's outside!
라는 메시지가 콘솔에 노출되었지만, 이후 f()
로 outer()
에 접근했을때는 리턴값인 inner
에 접근하여 inner
함수에서 발생되는 It's Inside.
메시지와 msg
변수에 접근하여 Hello message
라는 메시지만 노출된다.