프로그래밍 TIP/JAVASCRIPT

[서적 핵심 정리] 자바스크립트 객체지향 프로그래밍

여름나라겨울이야기 2014. 5. 14. 10:45
728x90

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



객체 멤버 분류(page 145)

구분 

구현

 

설명

 비공개 멤버

속성

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();


반응형