OOP
클래스 정의
1 |
function MyClass(){ } |
2 |
var MyClass = function(){ } |
- 2번방식이 가독성이 좋다
접근제어자
변수의 지정자에 따라 접근이 제어됨 (메소드도 동일하다)
클래스내부에서의 var |
private 와 같다 |
this.키워드 |
외부접근가능 |
정적클래스
자바스크립트에서 정적 클래스는 별도로 인스턴스를 생성하지 않는다. (선언과 동시에 정의가 됨)
유틸리티 형태의 기능 구현을 할 때 주로 사용된다.
var MyStaticClass - new Function(){
this.show = function(){
return "show";
}
}
alert("MyStaticClass.show()");
외부에서도 접근이 가능하고 클래스 안에'private'로 정의된 요소들을 접근 할 수 있는 메소드를
'privileged' 라고 한다.
변수(or 프로퍼티)
private |
'var' 키워드 사용 오직 'private/privileged 함수'에서만 접근 |
public |
클래스 안에서 'this.propertyName' 형태로 선언 외부에서 읽기/쓰기가능 |
prototype |
클래스 외부에서 'Classname.propertytype.propertyName = sameValue' 동일한 이름의 public 프로퍼티가 존재하지 않을 경우에 정의 가능 |
static |
'Classname.propertyName' 형태로 정의 인스턴스의 생성과는 별개의 영역에 존재 |
함수(or 메소드)
private |
'funtion funtionName(){…}' or 'var functionName=function(){…}' 형태로 선언 생성자와 privileged 메소드를 통해서만 호출 |
privileged |
클래스 안에서 'this.methodName = function(){...}' 형태로 선언 클래스 외부에서 실행 시 'prototype'을 이용한 재정의 필요 |
public |
클래스 외부에서 'Classname.propertytype.methodName = function(){…}' 형태로 정의 동일한 이름의 privileged 메소드가 존재하지 않을 경우에 정의 가능 |
static |
'Classname.propertyName' 형태로 정의 인스턴스의 생성과는 별개의 영역에 존재 |
- 정의 = 클래스가 구체화되어 인스턴스가 생성 되는것
* 출처 : 문학청년님의 강의 정리
'Development > JavaScript' 카테고리의 다른 글
[자바스크립트 완벽 가이드 정리] 타입, 값 , 변수 (0) | 2013.05.03 |
---|---|
[자바스크립트 완벽 가이드 정리] 어휘구조 (0) | 2013.05.03 |
[자바스크립트] 상속 (0) | 2013.05.03 |
[자바스크립트] 프로토타입 (0) | 2013.05.03 |
[자바스크립트] 자바스크립트 (0) | 2013.05.03 |