2011-09-13 12 views
4

클래스 또는 함수 객체의 프로토 타입 객체에 대한 참조입니다. 프로토 타입 속성이 자동으로 만들어져 클래스 또는 사용자가 만든 함수 개체에 연결됩니다. 은 사용자가 만든 클래스 나 함수에 따라 달라 지므로이 속성은 정적입니다. 예를 들어 클래스를 만드는 경우 prototype 속성 값은 클래스의 모든 인스턴스와 공유되며 클래스 속성으로 만 액세스 할 수 있습니다. 클래스의 인스턴스는 prototype 속성에 직접 액세스 할 수 없습니다.AS3 프로토 타입 - 정적 변수입니까?

클래스의 프로토 타입 객체는 이 클래스의 모든 인스턴스에서 상태를 공유하는 메커니즘을 제공하는 클래스의 특별한 인스턴스입니다. 런타임에 클래스 인스턴스에서 속성을 찾을 수 없으면 클래스 프로토 타입 개체 인 대리자가 해당 속성을 확인합니다. 프로토 타입 객체에 속성이 없으면 프로세스는 Flash Player 또는 Adobe Integrated Runtime이 속성을 찾을 때까지 계층 구조에서 연속적으로 상위 수준에있는 프로토 타입 객체의 대리인 검사를 계속합니다.

참고 : ActionScript 3.0에서 프로토 타입 상속은 기본 상속 메커니즘이 아닙니다. 클래스 정의에서 고정 된 속성의 상속을 유도하는 클래스 상속은 ActionScript 3.0의 기본 상속 메커니즘입니다.

그래서이 프로토 타입은 정적 변수라는 인상을받습니다. 맞습니까?

답변

7

정확하게 프로토 타입으로 구현 된 함수는 인스턴스 메서드로 실행됩니다. 정적 함수에서는 this에 액세스 할 수 없습니다.

또한 프로토 타입 값을 설정하는 것은 모든 인스턴스의 값을 설정하는 것이 아닙니다. 이 클래스의 객체가 명시 적으로 설정하지 않은 경우 폴백 값입니다.

var o1:Object= {}; 
var o2:Object= {}; 
Object.prototype.foo = "foo"; 

o1.foo = "bar" 

trace(o1.foo) // bar 
trace(o2.foo) // foo