«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Затенение в JavaScript

Затенение в JavaScript

Опубликовано 8 ноября 2024 г.
Просматривать:523

Обзор

Затенение в специальной концепции в JavaScript, которая позволяет переопределить методы, принадлежащие родительскому классу, в дочернем классе.

Давайте рассмотрим две любимые игры 21-го века, о которых довольно легко догадаться: GTA и Red Dead Redemption, если только вы не являетесь поклонником фейерверков с открытым миром.

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) вызывает метод addFeature в классе GTA, добавляя функцию к объекту openWorld.

Метод addFeature в RDR возвращает true, но он также гарантирует, что ROLE_PLAYER будет добавлен к объекту openWorld.

Shadowing in JavaScript

Заключительное примечание

Похоже, ROLE_PLAYER только что въехал в дикий открытый мир со значением true. Надеюсь, они готовы к ошибкам, с которыми столкнутся — в конце концов, это игра с открытым миром!

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/alimalim77/shadowing-in-javascript-12ci?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить их.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3