Я задаюсь вопросом, как моделировать Наследование классов в JavaScript. Я знаю, что класс не относится к JavaScript, способом, которым мы используем, являются Функции, чтобы создать объекты и сделать вещи наследования через Объект прототипа.
Например, как делают Вы преобразовываете эту структуру в JavaScript:
public class Mankind {
public string name;
public string lastname;
}
public class Person: Mankind {
public void Run(string fromWhat) {
//write the run logic
}
}
Каков эквивалент этой части кода в JavaScript.
Править:
Я также нашел другую ссылку, где Douglas Crockford объясняет различные модели наследования, как CMS делает: Классическое Наследование в JavaScript.
Надежда это помогает другим также.
Есть много способов реализации Повторное использование наследования и поведения в JavaScript, возможно, способом, который более похоже на ваш на основе классовых пример ООП, будет псевдоклассическим наследством:
function Mankind (name, lastname) {
this.name = name;
this.lastname = lastname;
}
function Person (name, lastname) {
this.name = name;
this.lastname = lastname;
this.run = function() {
// run logic
};
}
Person.prototype = new Mankind();
Person.prototype.walk = function () {
// walk logic
};
разница между запущена
и Прогулка
заключается в том, что первым будет существовать на каждом экземпляре объекта человека
, а второй метод прогулки
, будет существовать только в . Person.prototype
и будет доступен через цепочку прототипа.
В этом шаблоне вы видите немного дублирования кода, нам нужна логика для инициализации полей также на унаследованном конструкторе, другой шаблон, который позволяет избежать этого, является приложение функции конструктора:
function Mankind (name, lastname) {
this.name = name;
this.lastname = lastname;
}
function Person (name, lastname) {
Mankind.apply(this, arguments);
this.run = function() {
// run logic
};
}
Подробнее: