상세 컨텐츠

본문 제목

[JavaScript] JavaScript 의 static 구현 관련

WEB/JavaScript

by AlrepondTech 2017. 11. 8. 15:41

본문

반응형

 

 

 

=================================

=================================

=================================

 

 

 

 

 

 

 

 

 

출처: http://mohwaproject.tistory.com/entry/%EC%8A%A4%ED%83%9C%ED%8B%B1%EB%A9%94%EC%84%9C%EB%93%9C-%EC%83%9D%EC%84%B1%EB%B0%A9%EB%B2%95

 

 

static 속성과 메서드란? 

- 함수 객체의 인스턴스 맴버와는 달리 각 인스턴스에 따라 달라지지 않는 맴버 그룹을 
가리키며,
인스턴스를 생성하지 않고 사용할 수 있어야 한다.

자바스크립트에서의 static 구현은 아래와 같이 함수 객체에 속성을 추가하는 방법으로 
구현한다.


또한, 이 방법은 자바스크립트 디자인 패턴중 하나인 메모제이션 패턴에서도 활용된다.



1. 공개 static 맴버.

  1.  
  2. // 일반적인 함수 객체의 인스턴스 맴버
  3. var constructor_fn = (function(doc, win){
  4.        
  5.         return function(x, y){
  6.        
  7.             this.x = x;
  8.             this.y = y;
  9.  
  10.             return this;
  11.         }
  12.  
  13. })(document, window);
  14.  
  15. var obj1 = new constructor_fn(1, 2);
  16. alert(obj1.x + ' '  + obj1.y); // 1, 2
  17.  
  18. var obj2 = new constructor_fn(3, 4);
  19. alert(obj2.x + ' '  + obj2.y); // 3, 4
  20.  
  21.  
  22. // 인스턴스 맴버에 따라 맴버 그룹이 달라지지 않으며, 인스턴스를 생성하지 않고 사용할 수 있다.
  23. var static_fn = (function(doc, win){
  24.        
  25.         return function(){
  26.             return this;
  27.         }
  28.  
  29. })(document, window);
  30.  
  31. static_fn.x = 1;
  32. static_fn.y = 2;
  33.  
  34. alert(static_fn.x + ' '  + static_fn.y); // 1, 2

 

 

 

반응형

 

 

728x90

 



2. 비공개 스태틱 맴버. 

동일한 생성자 함수로 생성된 객체들이 공유하는 맴버이며, 생성자 외부에서는 
접근할 수 없다.


즉, 비공개 메서드로 구현한다.

자바스크립트 클로져 및 비공개 맴버 작성법을 활용하여 비공개 static 맴버를 구현한다.



  1.  

  2.  
  3. // 동일한 생성자 함수(constructor_fn())로 생성된 객체들이 공유하는 맴버이며, 생성자 외부에서는 접근할 수 없다.
  4. var constructor_fn = (function(doc, win){
  5.        
  6.         var key = 0;
  7.  
  8.         return function(x, y){
  9.        
  10.             this.x = x;
  11.             this.y = y;
  12.             this.getKey = getKey;
  13.  
  14.             return this;
  15.         }
  16.  
  17.         function getKey(){
  18.             return key++;
  19.         }
  20.  
  21. })(document, window);
  22.  
  23.  
  24. var obj1 = new constructor_fn(1, 2);
  25. alert(obj1.x + ' '  + obj1.y +  ' ' + obj1.getKey() ); // 1, 2, 1
  26.  
  27. var obj2 = new constructor_fn(1, 2);
  28. alert(obj2.x + ' '  + obj2.y +  ' ' + obj2.getKey() ); // 3, 4, 2
  29.  
  30.  
  31.  
  32. // 위와 같이 유일키 반환 알고리즘에 쓰일 수 있다.



출처: http://mohwaproject.tistory.com/entry/스태틱메서드-생성방법 [무하프로젝트]

 

 

=================================

=================================

=================================

 

 

 

반응형


관련글 더보기

댓글 영역