클로져 하면 생각나는것


close


close 하면 생각나는것


닫다


닫다 하면 생각나는것


막아버리다


막아버리다 하면 생각나는것


접근제한


접근제한 하면 생각나는것


private 



자바 클래스의 멤버에 private 속성을 먹여버리면


인스턴스에서 명시적인 접근이 제한된다.



그러나 프로토타입체인등으로 객체지향프로그래밍을 하는 자바스크립트는 private기능이 없다.


Object.DefineProperty 와 같은 메서드로 접근자 프로퍼티를 수정하여 구현가능하지만 귀찮기만하고 비교적 최근나온 메서드이므로


이전부터 자바스크립트 디벨로퍼들은 클로져 기법을 써왔다


코드를 보자


function Adun (age, name) {

this.age = age;


// 클로져 기법 (aka closure)

// 즉시실행함수 (aka iife) -> 클로져 기법의 핵심!! 믿줄 짝!!

(function () {

this.name = name;

})(name);

}


Adun.prototype.getName = function () {

return this.name;

}



var adun = new Adun(24, hong);


console.log(adun.name);  // error code(3691) : this.property is closure


but 


console.log(adun.getName());  // 'hong'





ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 참 쉽죠?


자세한 내용은


http://blog.naver.com/hongil221/220546760545 


ㅋㅋ