ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript でのシャドーイング

JavaScript でのシャドーイング

WBOY
WBOYオリジナル
2024-08-29 13:40:34244ブラウズ

概要

親クラスに属するメソッドを子クラスで再定義できるようにする、JavaScript の特別な概念におけるシャドウイング。

オープンワールドのバンガーのファンでない限り、簡単に推測できる 21 世紀の人気ゲームの 2 つ、GTA とレッド・デッド・リデンプションを取り上げましょう。

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。