日期:2014-05-16 浏览次数:20355 次
function Animal(){
}
Animal.prototype = {
group : '',
gender : '',
eat : function(){
return 'Yum , food! nom nom';
},
sleep : function(){
return 'zzzzzz...';
}
}
function Bird(){
}
function extend(subClass,superClass){
/*声明一个空构造函数*/
function fn(){}
/*将空函数原型指向父类,这样fn就有了superClass成员了,fn是为下面子类继承做准备用的。*/
fn.prototype = superClass.prototype;
/*将子类的原型指向空函数的实例*/
subClass.prototype = new fn();
/*因为前面改变了子类构造函数的原型会影响constructor属性(指向Object了),所以重新指定一下子类的constructor属性*/
subClass.prototype.constructor = subClass;
/*添加一个属性,保存子类的父类构造函数*/
subClass.baseConstructor = superClass;
/*添加一个属性,保存子类的父类构造函数原型*/
subClass.__super__ = superClass.prototype;
}
extend(Bird , Animal);
var bird = new Bird();
console.log(bird.eat());
function Animal(){
}
Animal.prototype = {
group : '',
gender : '',
eat : function(){
return 'Yum , food! nom nom';
},
sleep : function(){
return 'zzzzzz...';
},
walk : {
"method" : "walk"
}
}
function Bird(){
}
function Person(){
}
function extend(subClass,superClass){
/*声明一个空构造函数*/
function fn(){}
/*将空函数原型指向父类,这样fn就有了superClass成员了,fn是为下面子类继承做准备用的。*/
fn.prototype = superClass.prototype;