В своей статье на сайте о наследовании javascript Гарри Фьюкс объясняет способ реализации наследования следующим образом:
function copyPrototype(descendant, parent) {
var sConstructor = parent.toString();
var aMatch = sConstructor.match( /\s*function (.*)\(/ );
if ( aMatch != null ) { descendant.prototype[aMatch[1]] = parent; }
for (var m in parent.prototype) {
descendant.prototype[m] = parent.prototype[m];
}
};
Хотя я понимаю его код, возникает один вопрос - почему бы не удалить цикл for и просто сделать это:
function copyPrototype(descendant, parent) {
var sConstructor = parent.toString();
var aMatch = sConstructor.match( /\s*function (.*)\(/ );
if ( aMatch != null ) { descendant.prototype[aMatch[1]] = parent; }
descendant.prototype = parent.prototype;
};
Спасибо.