<script type="text/javascript">
//组合继承:借用构造函数+原型继承
function Person(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
};
Person.prototype.sayhi=function(){
console.log('你好,我是'+this.name);
};
function Student(name,age,sex,score){
//1:借用构造函数继承属性
Person.call(this,name,age,sex);
this.score = score;
};
//2:借用原型继承方法
Student.prototype=new Person();
Student.prototype.constructor = Student();
//这一步不能忘记
Student.prototype.exam = function(){
console.log('考试');
}
function Teacher(name,age,sex,salary){
//1:借用构造函数继承属性
Person.call(this,name,age,sex);
this.salary=salary;
}
//2:借用原型继承方法
Teacher.prototype=new Person();
Teacher.prototype.constructor = Teacher();//这一步不能忘记
Teacher.prototype.work=function(){
console.log('工作');
}
var stu1 = new Student('zs',10,'男',100);
var tea1 = new Teacher('ls',20,'男',3000);
console.dir(stu1);
console.dir(tea1);
</script>
重点在这里:
//1:借用构造函数继承属性
Person.call(this,name,age,sex);
};
//2:借用原型继承方法
Student.prototype=new Person();
Student.prototype.constructor = Student();