我无法理解第4行
如果我像derive.constructor.prototype
那样写,
将发生错误。
而且,什么是base.apply(derive, baseArgs);
?
我认为我可以做base(baseArg)
我不能那样做。
function initializeBase(derive, base, baseArgs) {
base.apply(derive, baseArgs);
for(var prop in base.prototype) {
var proto = derive.constructor.prototype;
if(!proto[prop]) {
proto[prop] = base.prototype[prop];
}
}
}
var Member = function(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
};
Member.prototype.getName = function() {
return this.firstName + ' ' + this.lastName;
};
var SpecialMember = function(firstName, lastName, role) {
initializeBase(this, Member, [firstName, lastName]);
this.role = role;
};
SpecialMember.prototype.isAdministrator = function() {
return (this.role == 'Administrator');
};
var mem = new SpecialMember('Kotaro', 'Hayafune', 'Administrator');
document.writeln('Name: ' + mem.getName() + '<br>');
document.writeln('Administrator: ' + mem.isAdministrator());
答案 0 :(得分:0)
不确定你的变量包含在哪里,但通常如果你想要原型你会写:
var proto = derive.prototype;
如果你想要你写的构造函数:
var constr = derive.prototype.constructor;