先上例子:
function Animal(){
this.type='动物';
}
function Cat(name, color){
this.name=name;
this.color=color;
}
//定义继续函数
function extend(Child, Parent){
var Fn=function(){};
Fn.prototype=Parent.prototype;
Child.prototype=new Fn();
Child.prototype.constructor=Child;
Child.uber=Parent.prototype;//这里的uber是个称号,能够随便定名
}
//实行函数
extend(Cat, Animal);
var cat_1=new Cat('kate', 'white');
alert(cat_1.type);//输出结果是undefined
针对这个题目,在extend要领中uber要在Cat中举行表现
对Cat函数增加
Cat.uber.constructor.call(this);
function Animal(){
this.type='动物';
}
function Cat(name, color){
Cat.uber.constructor.call(this); //增加代码
this.name=name;
this.color=color;
}
//定义继续函数
function extend(Child, Parent){
var Fn=function(){};
Fn.prototype=Parent.prototype;
Child.prototype=new Fn();
Child.prototype.constructor=Child;
Child.uber=Parent.prototype;//这里的uber是个称号,能够随便定名
}
//实行函数
extend(Cat, Animal);
var cat_1=new Cat('kate', 'white');
alert(cat_1.type);//输出结果是 动物