//组合继承:原型继承+借用构造函数继承

    1. function Person(name,age,sex) {
    2. this.name=name;
    3. this.age=age;
    4. this.sex=sex;
    5. }
    6. Person.prototype.sayHi=function () {
    7. console.log("阿涅哈斯诶呦");
    8. };
    9. function Student(name,age,sex,score) {
    10. //借用构造函数:属性值重复的问题
    11. Person.call(this,name,age,sex);
    12. this.score=score;
    13. }
    14. //改变原型指向----继承
    15. Student.prototype=new Person();//不传值
    16. Student.prototype.eat=function () {
    17. console.log("吃东西");
    18. };
    19. //此时的"小黑",20,"男","100分" 都是属于对象的信息,不是原型的信息
    20. var stu=new Student("小黑",20,"男","100分");
    21. console.log(stu.name,stu.age,stu.sex,stu.score);
    22. stu.sayHi();
    23. stu.eat();
    24. var stu2=new Student("小黑黑",200,"男人","1010分");
    25. console.log(stu2.name,stu2.age,stu2.sex,stu2.score);
    26. stu2.sayHi();
    27. stu2.eat();
    28. //属性和方法都被继承了
    29. //推荐使用