개발

[JavaScript] private 변수가 있는 클래스 생성

마스터누누 2017. 4. 18. 19:56
728x90
반응형

private 변수가 있는 클래스 생성



JavaScript 코드에서 Ajax로 Json 파일을 받아오는 예제를 만드는중이다.

서버가 없었지만 나름대로 view 내부에서 MVC패턴을 구현하던 중에

 Model 쪽 코드에서 데이터를 관리하기 위해 private 변수가 있는 객체가 필요하게 됐다

아래는 실제 예제에서 사용한 private 변수가 있는 클래스 생성 코드 샘플이다



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var dataObjFn = (function() {
 
   var json = ["aaaa"];
 
   function dataModelObj() {
 
   }
 
   dataModelObj.prototype = {
       getName : function() {
           return json;
       }
   }
 
   return dataModelObj;
 
})();
 
var dd = new dataObjFn();
cs



코드를 자세히 보면 클로저가 사용 되었음을 알 수 있다.


1. 우선 dataObjFn 변수 내부에 private로 사용될 변수를 선언한다.


2. dataModelObj와 여기에 들어갈 프로토타입 메소드나 변수를 선언한다.


3. dataModelObj를 리턴하는 함수를 바로 실행해서 변수(dataObjFn)에 저장한다.

이 변수는 dataModelObj를 리턴받아서 생성자로 쓰인다. 

console에 변수 이름을 출력하면 리턴된 dataModelObj가 나온다.


4. 이렇게 만들어진 dataObjFn()를 사용하여 필요한 만큼 인스턴스 객체를 만들어낸다.

반응형