//继承例子:
    //人,都有姓名,性别,年龄, 吃饭, 睡觉, 玩
    //学生,都有姓名,性别,年龄, 成绩, 吃饭, 睡觉, 玩 ,学习的行为
    //js中通过原型来实现继承
    function Person(age) {
    this.age=age;
    }
    Person.prototype.eat=function () {
    console.log(“人可以吃东西”);
    };
    function Student(score) {
    this.score=score;
    }
    //在改变学生原型对象之前先给学生的原型中添加一个sayHi方法(这个方法会出现什么情况?)
    Student.prototype.sayHi = function () {
    console.log(“hi~~~”);
    };
    //改变学生的原型的指向即可==========>学生和人已经发生关系
    Student.prototype = new Person(10);
    //相同的代码太多,造成了代码的冗余(重复的代码)
    var stu=new Student(100);
    console.log(stu.age);
    stu.eat();
    console.log(“下面的是学生对象中自己有的”);
    console.log(stu.score);
    stu.sayHi();//错误?
    //一般步骤是:先修改函数原型,再向修改后的原型中添加信息

    //继承案例
    //动物有名字,有体重,有吃东西的行为
    //小狗有名字,有体重,有毛色, 有吃东西的行为,还有咬人的行为
    //哈士奇名字,有体重,有毛色,性别, 有吃东西的行为,还有咬人的行为,逗主人开心的行为
    //动物的构造韩素
    function Animal(name,weight) {
    this.name=name;
    this.weight=weight;
    }
    //动物的原型的方法
    Animal.prototype.eat=function () {
    console.log(“天天吃东西,就是吃”);
    };
    //狗的构造函数
    function Dog(color) {
    this.color=color;
    }
    Dog.prototype=new Animal(“哮天犬”,”50kg”);
    Dog.prototype.bitePerson=function () {
    console.log(“哼~汪汪~咬死你”);
    };
    //哈士奇
    function ErHa(sex) {
    this.sex=sex;
    }
    ErHa.prototype=new Dog(“黑白色”);
    ErHa.prototype.playHost=function () {
    console.log(“哈哈~要坏衣服,要坏桌子,拆家..嘎嘎…好玩,开心不,惊喜不,意外不”);
    };
    var erHa=new ErHa(“雄性”);
    console.log(erHa.name,erHa.weight,erHa.color);
    erHa.eat();
    erHa.bitePerson();
    erHa.playHost();
    原型链的图解.png