문제

내가 좋아하는 스티브 Yegge 의 품 패턴을 예 고 결정을 채찍질하는 빠른 개념의 증명은 예입니다.

그러나 진짜로 생각하지 않았다는 것이다.는 동안 그것은 동적으로 지정하는 행동의 개체고 쉽고 솔루션은 스티브 강 elf 를 들어,내가 여전히 노력을 밖으로 작업을 처리하는 가장 좋은 방법은 인스턴스는 변수입니다.

예를 들어,말하자 나는 AwesomeDragon 개체입니다.나는 그때를 확인하려면 AwesomeDragonImmuneToFire 개체 그래서 내가 만드는 새로운 아동의 AwesomeDragon(AwesomeDragonImmuneToFire 속성을 상속 AwesomeDragon)고''"ImmuneToFire"속성으로 값이'true'이다.그래서 지금까지 너무 좋아요.지금 보내고 싶 내 AwesomeDragon 체의 투어에 근처의 농민 마을이 있습니다.이 포함됩니다 업데이트하는'위치'등의 AwesomeDragon.그러나는 순간 나는 이렇게 AwesomeDragonImmuneToFire 을 취할 것입니다.

최고의 솔루션을 재정의 인스턴스 값에 따라 객체를 작성 예바로'넣어''위치'가치에 AwesomeDragonImmuneToFire 현재'get'값이'위치'?

도움이 되었습니까?

해결책

시스템에서 실제로 상속을 구현하는 방법에 달려 있지 않습니까?

예를 들어, 당신이 설명하는 것의 JavaScript 버전에서 prototype ~을 위한 AwesomeDragonImmuneToFire 일반적으로 사례AwesomeDragon, 그리고 항상 인스턴스로 작업하고 있기 때문에 특정한 어떤 일을하는지는 중요하지 않습니다. AwesomeDragon:

function Dragon()
{
    this.position = "starting point";
}

function AwesomeDragon()
{
    this.awesome = true;
}
AwesomeDragon.prototype = new Dragon();

function AwesomeDragonImmuneToFire()
{
    this.immuneToFire = true;
}
AwesomeDragonImmuneToFire.prototype = new AwesomeDragon();

>>> var awesome = new AwesomeDragon();
>>> var immune = new AwesomeDragonImmuneToFire();
>>> awesome.position = "flying above village";
>>> immune.position;
"starting point"
>>> immune.awesome
true

이 예에서는 클래스가 없으며 모든 인스턴스는 단지 인스턴스입니다. Object 어떤 기능을 구성하는 데 사용되었는지 알 수 있습니다. new 그냥이야 약간의 구문 설탕 생성자 기능에 StudlyCaps를 사용하는 것은 new.

핵심은 각 객체에 프로토 타입 객체의 체인이 있다는 것입니다. "속성 패턴"이 무엇인지에 대한 Yegge의 설명에 따라 객체 자체가 유지하지 않는 속성에 액세스하려고하면 검사됩니다.

https://developer.mozilla.org/en/core_javaScript_1.5_guide/details_of_the_object_model

다른 팁

이 포함됩니다 업데이트하는'위치'등의 AwesomeDragon.그러나는 순간 나는 이렇게 AwesomeDragonImmuneToFire 을 취할 것입니다.

어쩌면 내가 오해하지만 나는 확실하지 않다고 생각하는 이유 AwesomeDragonImmuneToFire 을 취할 것입니다.는 경우에 그들은 두 가지 개체고의 위치 은의 그 각각의 인스턴스(용)이 있을 것이 자신의 위치입니다.의 위치를 변경 하나의 드래곤하지 않아야의 위치에 영향을 미칠니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top