親クラスに属するメソッドを子クラスで再定義できるようにする、JavaScript の特別な概念におけるシャドウイング。
オープンワールドのバンガーのファンでない限り、非常に簡単に推測できる 21 世紀の最愛のゲームの 2 つ、GTA とレッド・デッド・リデンプションを取り上げましょう。
トピックに戻りますが、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