>  기사  >  웹 프론트엔드  >  JavaScript의 섀도잉

JavaScript의 섀도잉

WBOY
WBOY원래의
2024-08-29 13:40:34244검색

개요

상위 클래스에 속한 메소드를 하위 클래스에서 재정의할 수 있도록 하는 JavaScript의 특수 개념에 그림자를 적용합니다.

오픈 월드 팬이 아닌 이상 추측하기 매우 쉬운 21세기의 사랑받는 두 게임인 GTA와 Red Dead Redemption을 살펴보겠습니다.

Shadowing in JavaScript

본 주제로 돌아가서, 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 객체에 추가되도록 보장합니다.

Shadowing in JavaScript

마무리 메모

ROLE_PLAYER가 true라는 가치를 지닌 채 거친 오픈 월드에 막 뛰어든 것 같습니다. 그들이 직면하게 될 버그에 대비하기를 바랍니다. 결국 이것은 오픈 월드 게임입니다!

위 내용은 JavaScript의 섀도잉의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.