JavaScript 中一個特殊概念的影子,使得屬於父類別的方法可以在子類別中重新定義。
讓我們來看看兩款 21 世紀最受歡迎的遊戲,它們很容易猜到:GTA 和 Red Dead Redemption,除非您不喜歡開放世界遊戲。
回到我們的主題,我將讓GTA擔任Parent Class的角色,RDR擔任Child Class的角色。
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方法,將feature加入openWorld物件。
RDR中的addFeature方法傳回true,但它也確保ROLE_PLAYER被加入到openWorld物件中。
看起來 ROLE_PLAYER 剛進入野外開放世界,值為 true。希望他們已經準備好應對將遇到的錯誤——畢竟這是一款開放世界的遊戲!
以上是JavaScript 中的陰影的詳細內容。更多資訊請關注PHP中文網其他相關文章!