부모 클래스에 속한 메서드를 자식 클래스에서 재정의할 수 있도록 만드는 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 값을 가지고 거친 오픈 월드에 막 뛰어든 것 같습니다. 그들이 직면하게 될 버그에 대비할 수 있기를 바랍니다. 결국 이것은 오픈 월드 게임입니다!
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3