[英]Can I overwrite a constructor in javascript?
只是暂时保存prototype
对象,然后替换构造函数:
var proto = UserModel.prototype;
UserModel = function () { /* new implementation */ };
UserModel.prototype = proto;
基本上,你创建一个什么都不做的临时函数,你设置它的原型有父类的原型,那么你可以使用基类作为父类而不调用它的构造函数。
如果需要从子类的构造函数引用父类的构造函数,则juste必须使用Function.prototype.apply
来转发构造函数调用。
Javascript继承模型:
// Base class
var Base = function ( ) {
this.foo = 40;
};
Base.prototype.bar = function ( ) {
return this.foo;
};
// Inherited class
var Child = function ( ) {
Base.apply( this, arguments );
this.foo += 2;
};
var F = function ( ) { };
F.prototype = Base.prototype;
Child.prototype = new F( );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.