В чем разница между
Employee.prototype = Object.create(Person.prototype);
и
_.extend(Employee.prototype, Person.prototype);
Оба дают аналогичные результаты (вывод), но метод подчеркивания, похоже, добавляет Person.prototype в Employee.constructor.prototype и, вполне возможно, требует дополнительного материала здесь и там, почему?
чистый JS
underscoreJS
Хороший побочный эффект _.extend
заключается в том, что я могу легко выполнять множественное наследование: кажется, что он еще не делает цепочку прототипов длиннее...
_.extend(Employee.prototype, Person.prototype);
_.extend(Employee.prototype, {
doSomething: function() {
return "hi ...";
}
});
Но...
Почему есть 2 sayHi и doSomething функционирует? (на самом деле это то же самое, когда я просто делаю 1).