Я хочу использовать методы класса Parent в моем дочернем классе.
В классическом ООП вы просто расширяете свой дочерний класс, чтобы использовать возможности своих родителей, возможно ли это с использованием прототипа?Наследование Javascript с использованием узла
Вот моя структура файла:
Parent.js
var Parent = function(){
this.add = function(num) {
return num + 1;
};
};
module.exports = Parent;
Child.js
var Parent = require("./parent.js"),
util = require("util");
var Child = function() {
this.sum = function(num) {
// I want to be able to use Parent.add() without instantiating inside the class
// like this:
console.log(add(num));
};
};
util.inherits(Child, Parent);
module.exports = Child;
program.js
var child = require("./child.js");
var Calculator = new child();
Calculator.sum(1);
Очевидно, что add()
не определено здесь ,
Я пробовал использовать util.inherits, но я не уверен, что это правильный подход.
Я также хотел бы спросить, является ли это хорошим шаблоном проектирования в JavaScript в целом, учитывая, что я хотел бы иметь несколько дочерних классов, наследуемых от моего родителя?
Вы должны написать его как 'this.add (num)'. – Pointy
А также вы должны сделать 'Parent.call (this)' в конструкторе 'Child' – Bergi