- Published on
캡슐화
캡슐화는 객체 지향 프로그래밍에서 다음 2가지 측면이 있다.
-
(1) 객체의 속성(data fields)과 행위(methods)를 하나로 묶고
-
(2) 실제 구현 내용 일부를 외부에 감추어 은닉한다.
C++언어에서는 은닉하는 방법으로 접근지정자를 사용한다. (private, protected, public)
Javascript의 캡슐화
- 클래스내의 멤버 변수들을 외부로부터 숨기는 방법
(function() {
var age = 26; //지역변수 - 외부함수가 끝나면 사라진다.
return {
getAge : function(){
return age;
//외부함수내의 내부함수 getAge가 지역변수 age를 참조한다.
//이 내부함수 getAge 객체가 반환되면,
//내부함수는 외부함수의 지역변수에 자유롭게 접근 가능하다.
}
}
}();
-
함수내에 지역변수 age를 참조하고있는 다른 내부함수들이 존재하고,(getAge(), setAge()와 같은..) 이 내부함수가 외부로 리턴되면,
지역변수 age는 표면적으로는 사라지지만, 내부함수는 계속해서 접근할 수 있게 된다. (클로져)
그렇기 때문에 getAge와 setAge로 지역변수인 age를 제어할 수 있게 되는 방식이다.