page 120
클로저란 비공개 내부 변수를 갖는 함수 인스턴스 생성자다. 그리고 클로저로 생성한 독립된 변수 공간을 가진 인스턴스를 클로저라고 한다.
클로저를 이용해 함수를 반환할 수도 있지만 객체를 반환할 수도 있다.(클래스 vs 인스턴스 = 클로저 vs 반환 객체)
function outer() {
var x = 0;
return function() {
return ++x;
}
}
var f = outer();
document.write(f());
document.write(f());
var g = outer();
document.write(g());
document.write(g());
// 결과
// 1
// 2
// 1
// 2
구분 |
구현 |
|
설명 |
비공개 멤버 |
속성 |
var 변수 |
객체 내부에서 선언된 변수, 비공개 함수에서만 접근 가능 |
|
메서드 |
function f() {...} var f = function() {...} |
객체의 생성자에 인라인 방식으로 정의된, 이름이 있는 함수 또는 익명 함수, 생성자 내부 코드에서 호출 가능 |
인스턴스 멤버 |
속성 |
this.property = 값 |
외부에서 인스턴스를 통해 접근 가능 obj.property; |
|
메서드 |
this.method = function() {...}; |
외부에서 인스턴스를 통해 접근 가능 obj.method(); |
프로토타입 멤버 |
속성 |
생성자.prototype.property = 값; |
외부에서 생성자 또는 인스턴스를 통해 접근 가능 생성자.prototype.property - 읽기 쓰기 가능 obj.property - 읽기 전용 |
|
메서드 |
생성자.prototype.method = function() {...}; |
외부에서 생성자 또는 인스턴스를 통해 접근 가능 생성자.prototype.method(); obj.method(); |
생성자 멤버 |
속성 |
생성자.property = 값; |
외부에서 생성자를 통해 접근 가능 생성자.property; |
|
메서드 |
생성자.method = function() {...}; |
외부에서 생성자를 통해 접근 가능 생성자.method(); |
'프로그래밍 TIP > JAVASCRIPT' 카테고리의 다른 글
탈클래스화 (0) | 2017.12.06 |
---|---|
[JSON] easyUI checkbox tree 만들기 (2) | 2013.10.23 |
EasyUI checkbox tree onChecked 이벤트 처리 (2) | 2013.10.17 |
SelectBox 순서 조절하기 (2) | 2013.10.09 |
[JAVASCRIPT] 사랑 가능성 테스트 최종본 (0) | 2013.05.25 |