Имея родительский класс:унаследуют прототип
function Animal() {
// do something
}
Animal.prototype.walk = function() {
alert('I am walking.');
};
и класс ребенка :
function Lion() {
// do something
}
, если я хочу Lion
наследовать Animal
«s прототип обычной практикой это :
Lion.prototype = new Animal();
// Set the constructor to Lion, because now it points to Animal
Lion.prototype.constructor = Lion;
Разве это ничем не отличается от этого (как результат не как производительность)?
$.extend(Lion.prototype, Animal.prototype);
Для не разработчиков Jquery: $.extend
копирует все методы прототип и атрибуты, по одному из животных в Lion.
Я не большой эксперт по наследованию в javascript. Обычно я использую структуру MVC для разработки интерфейса, где все просто работает, но теперь я хотел бы также понять, как работает наследование прототипа.
ПРИМЕЧАНИЕ! Я прочитал много статей о предмете, я знаю, что существует много "plugins", который реализует функциональность класса. Это не что мне нужно. Пожалуйста, ответьте на вопрос, а не просто ссылку на статьи о предмете (за исключением случаев, когда это отвечает).
Спасибо!
'$ .extend' в JQuery реализует ** Смешение ** шаблон JavaScript, предназначенный в первую очередь клонировать объекты и добавлять новые реквизиты и методы; где изменение прежнего объекта не влияет на новое. Подумайте об этом как о новом 'Object.create' в Harmony, с одним отличием -' newObj = Object.create (oldObj) 'делает' oldObj' '__proto__' статьи' newObj' –