4 способа вызова дочернего метода из родительского метода в JavaScript

Чтобы вызвать дочерний метод из родительского метода в JavaScript, вы можете использовать различные подходы в зависимости от конкретного сценария. Вот несколько методов, которые вы можете использовать:

  1. Метод 1. Использование ключевого слова this

    • В родительском методе вы можете использовать ключевое слово «this», чтобы обратиться к дочернему объекту и напрямую вызвать его метод. Например:

      function Parent() {
      this.callChildMethod = function() {
       console.log("Parent method calling child method");
       this.childMethod();
      };
      }
      
      function Child() {
      this.childMethod = function() {
       console.log("Child method called");
      };
      }
      
      Child.prototype = new Parent();
      
      var childObj = new Child();
      childObj.callChildMethod();  // Output: Parent method calling child method
                               //         Child method called
  2. Метод 2. Использование ключевого слова “super” (ES6+)

    • Если вы используете ES6 или более позднюю версию, вы можете использовать ключевое слово «super» для вызова родительского метода из дочернего метода. Затем вы можете вызвать дочерний метод из родительского метода. Вот пример:

      class Parent {
      parentMethod() {
       console.log("Parent method called");
       this.childMethod();
      }
      }
      
      class Child extends Parent {
      childMethod() {
       console.log("Child method called");
      }
      }
      
      const childObj = new Child();
      childObj.parentMethod();  // Output: Parent method called
                             //         Child method called
  3. Метод 3. Использование обратных вызовов

    • Вы можете определить функцию обратного вызова в родительском методе и передать ее в качестве аргумента дочернему методу. Затем в дочернем методе вы можете вызвать функцию обратного вызова. Вот пример:

      function parentMethod(callback) {
      console.log("Parent method called");
      callback();
      }
      
      function childMethod() {
      console.log("Child method called");
      }
      
      parentMethod(childMethod);  // Output: Parent method called
                               //         Child method called
  4. Метод 4. Использование прототипного наследования

    • Настроив цепочку прототипов, вы можете вызывать дочерний метод из родительского метода. Вот пример:

      function Parent() {}
      
      Parent.prototype.parentMethod = function() {
      console.log("Parent method called");
      this.childMethod();
      };
      
      function Child() {}
      
      Child.prototype = Object.create(Parent.prototype);
      Child.prototype.constructor = Child;
      
      Child.prototype.childMethod = function() {
      console.log("Child method called");
      };
      
      var childObj = new Child();
      childObj.parentMethod();  // Output: Parent method called
                             //         Child method called