0
本のプロJavascriptの設計パターンでは、継承を実装する方法の1つは、拡張関数を使用することです。Javascript継承異なる拡張関数の実装
function extend(subClass, superClass) {
var F = function() {};
F.prototype = superClass.prototype;
subClass.prototype = new F();
subClass.prototype.constructor = subClass;
}
使用例
function Person(name) {
this.name = name;
}
Person.prototype.getName = function() {
return this.name;
}
function Author(name, books) {
Person.call(this, name);
this.books = books;
}
extend(Author, Person);
それでは、なぜ同じ機能がこのように実装することはできませんか?
function extend(subClass, superClass) {
subClass.prototype.__proto__ = superClass.prototype
}
2つの実装の違いは同じですか?
IE <11 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/protoの中でも '__proto__'はサポートされていませんでした。 – Xotic750