Во-первых, давайте рассмотрим неэтиамскую наследство: метод наследования экземпляра.
Я не говорю так много чепухи. Поскольку он унаследован не Mainestream, его нельзя использовать часто. Поскольку он не используется часто и все еще существует, существует только один фактор, который он используется в определенных случаях. Метод наследования экземпляра в основном используется для наследования основных объектов, а также является единственным способом решения наследования основных объектов.
Наследование основных объектов имеет определенную ценность. Например, объект ошибки. Нашей компании, возможно, придется внедрить класс ошибок, чтобы упростить будущее развитие. В настоящее время я должен использовать метод наследования экземпляра, чтобы наследовать ошибку.
Код заключается в следующем:
Кода -копия выглядит следующим образом:
функция ExtendingError (MES)
{
var Encement = новая ошибка (MES);
encess.newerror = function () {
Alert («Ваша ошибка»+mes);
}
вернуть экземпляр;
}
ОК, проверить:
Кода -копия выглядит следующим образом:
var e = new ExtendingError («Ваше число меньше одного»);
e.newerror ();
оповещение (e.toString ());
Результаты удовлетворяют нас:
ОК, не говоря, не говоря уже о том, что это метод наследования не-мукостам, который в основном используется только для наследования основных объектов, просто помните его!
Далее, давайте посмотрим на второе неэтиатическое наследство: копия метода наследования.
Как следует из названия, копия наследования означает наследство объектов посредством копирования. Что мне скопировать? Очевидно, что это свойства и методы объекта. Вы до сих пор помните, что в JavaScript класс на самом деле является хэштибелем? Если вы не можете вспомнить, вернитесь и просмотрите основы. Я могу написать статью об объектах JavaScript за некоторое время.
Это будет легче понять это, просто посмотрите на код:
Сначала напишите метод расширения:
Кода -копия выглядит следующим образом:
Function.prototype.extend = function () {
для (var pro in obj)
{
// это на самом деле полная копия свойств и методов родительского класса
this.prototype [pro] = obj [pro];
}
}
Хорошо, напишите кусок кода, чтобы увидеть, как его использовать:
Кода -копия выглядит следующим образом:
Функциональное животное ()
{}
функционировать люди ()
{}
People.extend (New Animal ())
{}
Помещающий человек может сразу увидеть, что недостатки этого метода слишком очевидны:
При копировании методов атрибута объекта один за другим, отражение фактически используется. Я не скажу много о повреждении эффективности отражения.
Как прототип наследования, родительский объект должен быть инициализирован. Когда отношения наследования определяются, но параметры все еще неясны, его нельзя играть!
Короче говоря, этот метод обычно не используется.
Хорошо, давайте поговорим о чем -то общепринятом. Смешанное наследство!
Это основано на двух основных методах наследования. Сравнивая два метода наследования, мы можем обнаружить, что преимущества и недостатки двух методов наследования дополняют, поэтому их легко смешать!
Кода -копия выглядит следующим образом:
Функция людей (имя)
{
this.name = name;
this.sayname = function () {
оповещение («Мое имя»+имя);
}
}
Функция девушка (имя, возраст)
{
// Наследование строительства
this.father = люди;
this.father (имя);
Удалить это. Отец;
this.introduce = function () {
Alert («Мое имя»+name+». I Am Am»+возраст);
}
}
// Прототип наследования
Girl.prototype = new People ();
Хорошо, смесь двух методов, теперь давайте посмотрим, была ли проблема решена?
var g = new Girl ("Xuan", 22);
предупреждение (g экземпляр людей);
g.sayname ();
g.introduce ();
Тест прошел!
Это относительно идеальное решение, но оно увеличивает сложность кода, поэтому конкретное решение зависит от выбора каждого на практике.
Это все способы поиска с JavaScript. Все могут продолжать следовать за моими другими статьями.