상위 클래스에 속한 메소드를 하위 클래스에서 재정의할 수 있도록 하는 JavaScript의 특수 개념에 그림자를 적용합니다.
오픈 월드 팬이 아닌 이상 추측하기 매우 쉬운 21세기의 사랑받는 두 게임인 GTA와 Red Dead Redemption을 살펴보겠습니다.
본 주제로 돌아가서, GTA에 부모 클래스 역할을 주고 RDR이 자식 클래스 자리를 맡도록 하겠습니다.
class GTA { constructor() { this.openWorld = {}; } addFeature(feature, value) { this.openWorld[feature] = value; return this.openWorld[feature]; } } class RDR extends GTA { addFeature(feature) { super.addFeature(feature, true); // Calls the parent class' method and adds the feature return true; } } var role = new RDR(); console.log(role.addFeature('ROLE_PLAYER')); // This will return true console.log(role.openWorld); // This will now have 'ROLE_PLAYER' added to it with value true
super.addFeature(feature, true)는 GTA 클래스의 addFeature 메소드를 호출하여 openWorld 객체에 기능을 추가합니다.
RDR의 addFeature 메소드는 true를 반환하지만 ROLE_PLAYER가 openWorld 객체에 추가되도록 보장합니다.
ROLE_PLAYER가 true라는 가치를 지닌 채 거친 오픈 월드에 막 뛰어든 것 같습니다. 그들이 직면하게 될 버그에 대비하기를 바랍니다. 결국 이것은 오픈 월드 게임입니다!
위 내용은 JavaScript의 섀도잉의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!