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方法,将feature添加到openWorld对象中。
RDR中的addFeature方法返回true,但它也确保ROLE_PLAYER被添加到openWorld对象中。
看起来 ROLE_PLAYER 刚刚进入野外开放世界,值为 true。希望他们已经准备好应对将遇到的错误——毕竟这是一款开放世界的游戏!
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3