В реальных проектах мы обычно используем конструкторы для создания объекта, а затем добавляем несколько обычно используемых методов в свой объект прототипа. Наконец, либо создайте экземпляр объекта напрямую, либо используйте его в качестве родительского класса, объявите объект и наследуйте родительский класс.
Есть два распространенных способа наследования.
Кода -копия выглядит следующим образом:
// Премиум класс
Функция человека (имя) {
this.name = name;
};
// подкласс
Функция студента (секс) {
Person.apply (это, аргументы);
this.sex = sex;
};
1. Унаследовать прототип:
Кода -копия выглядит следующим образом:
Студент. Поскольку Person.prototype.constructor указывает на человека, назначение объекта, по сути, является справочным назначением, поэтому Student.prototype.constructor также указывает на человека
Студент.prototype.constructor = Студент;
Используйте объект прототипа человека, чтобы перезаписать объект прототипа студента; Полем
Посмотрите на следующее:
Кода -копия выглядит следующим образом:
Student.prototype.add = function () {alert ("add")};
Person.prototype.add (); // popt add
2. Пример наследства:
Кода -копия выглядит следующим образом:
Студент.
2 Student.prototype.constructor = Студент;
Используйте экземпляр человека, чтобы перезаписать объект прототипа студента; Это не будет отражено лично. Прототип, то есть подкласс не повлияет на родительский класс.
3. Используйте объекты управления для объединения преимуществ 1 и 2 для устранения недостатков
Кода -копия выглядит следующим образом:
var f = function () {};
F.prototype = person.prototype;
Student.prototype = new f ();
Student.prototype.constructor = Студент;
F является пустым объектом, только с некоторыми приведенными выше методами прототипа, которые потребляют меньше памяти при создании экземпляра, а также изолируют влияние подклассов на родительские классы.