JavaScript继承构造函数.prototype
JavaScript Inheritance constructor.prototype
我听不懂第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());
不确定这里的变量包含什么,但通常如果你想要原型,你会写:
var proto = derive.prototype;
如果你想要构造函数,你可以写:
var constr = derive.prototype.constructor;
相关文章:
- ES6构造函数返回基类的实例
- JavaScript继承构造函数.prototype
- 为什么更改函数的 .prototype 会影响已使用该构造函数创建的对象的“实例”
- 模拟“类”时,为什么要在 .prototype 属性中设置方法,而不是在构造函数本身中设置方法
- Javascript-Prototype没有读取构造函数变量
- JS中的prototype和构造函数属性
- Prototype构造函数上下文中的JavaScript类型检查和异常
- JS,prototype:有了构造函数,我怎么能得到一个实例
- 为什么实例没有't在没有prototype关键字的情况下继承添加到构造函数的属性
- 如何创建一个JavaScript构造函数,将自定义字符串返回给Object.prototype.toString()
- 如何使用Object.prototype将函数添加到对象构造函数
- 原型链中的函数解析将如何为Object.prototype作为构造函数工作
- 使用'this'在构造函数中使用prototype属性
- JavaScript继承:在构造函数中使用__proto__,而不是构造函数的prototype属性
- Javascript -在构造函数或构造函数的prototype属性中设置属性
- prototype属性的构造函数实例的奇怪行为
- 为什么把成员添加到构造函数而不是Prototype中?
- Javascript在构造函数中将dom事件设置为prototype方法
- 直接向JavaScript构造函数添加方法和使用prototype添加方法有什么区别
- 是什么让 object.prototype 成为构造函数,如果他没有名字