prototype(Object.prototype 속성)

public static prototype : 객체

클래스의 수퍼 클래스 또는 함수 객체에 대한 참조입니다. 만드는 모든 클래스 또는 함수 객체에는 prototype 속성이 자동으로 만들어져 첨부됩니다. 이 속성은 정적 속성이며 만드는 클래스나 함수에 따라 다릅니다. 예를 들어, 사용자 정의 클래스를 만드는 경우 클래스의 모든 인스턴스는 prototype 속성의 값을 공유하고 class 속성으로만 액세스할 수 있습니다. 사용자 정의 클래스의 인스턴스는 prototype 속성에 직접 액세스할 수는 없지만 __proto__ 속성을 통해 액세스할 수 있습니다.

지원 버전: ActionScript 1.0, Flash Lite 2.0

예제

다음은 Shape라는 클래스와 Circle이라는 Shape의 하위 클래스를 만드는 예제입니다.

// Shape.as라는 외부 파일에 정의된 Shape 클래스
class Shape {
    function Shape() {}
}

// Circle.as라는 외부 파일에 정의된 Circle 클래스
class Circle extends Shape{
    function Circle() {}
}

Circle 클래스를 사용하여 Circle의 두 인스턴스를 만들 수 있습니다.

var oneCircle:Circle = new Circle();
var twoCircle:Circle = new Circle();

다음 trace 명령문에서는 Circle 클래스의 prototype 속성이 Shape 수퍼 클래스를 가리키는 것을 보여 줍니다. Shape 식별자는 Shape 클래스의 생성자 함수를 참조합니다.

trace(Circle.prototype.constructor == Shape); // 출력: true

다음 trace 명령문에서는 prototype 속성과 __proto__ 속성을 함께 사용하여 상속 계층(또는 프로토타입 체인)을 두 수준 위로 이동할 수 있는 방법을 보여 줍니다. Circle.prototype.__proto__ 속성에는 Shape 클래스의 수퍼 클래스에 대한 참조가 들어 있습니다.

trace(Circle.prototype.__proto__ == Shape.prototype); // 출력: true

참고 사항

__proto__(Object.__proto__ 속성)