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中文网其他相关文章!