//javsscript继承方式
var People =function(sex){
this.name='名字';
this.age=0;
this.sex=sex;
}
People.prototype.talk=function(){window.alert('说话');}
People.prototype.walk=function(){window.alert('走');}
People.prototype.description=function(){window.alert(this.name+' 是 '+this.age+" "+this.sex);}
var Worker=function(){
People.call(this,'男'); //调用父类的构造函数初始化数据 将父类构造函数中数据复制到子类中,'男' 是传入给父类构造函数的参数,可以省略
this.name='jack'; //覆盖父类属性
this.age=12;
}
Worker.prototype=new People(); //实现继承,获取父类属性和函数
Worker.prototype.doJob=function(){window.alert('工作');}
Worker.prototype.talk=function(){window.alert('工作交谈')}//覆盖父类函数
var worker=new Worker();
worker.doJob();
worker.talk(); //打印'工作交谈'
worker.description(); //打印 'jack 是 12 undefined'
//extJs继承
var Student=function(config){
//调用父类构造函数初始化数据,将父类构造函数中数据复制到子类中,config是传给初始化父类构造函数的参数,可以省略。
Student.superclass.constructor.call(this,'男');
/*从config复制函数或者属性给Student构造函数*/
Ext.apply(this,config);
}
//extend实现子类student继承父类people
Ext.extend(Student,People,{study:function(){window.alert('学习')},
talk:function(){window.alert('学习交谈')}
} //此对象中的属性,函数添加到子类的prototype原型对象中,或者覆盖父类prototype原型中的属性和函数。
);
var student=new Student({name:'xx',age:23});
student.talk();
student.walk();
student.description();