JS 继承 - 83015010/js GitHub Wiki

参考资料:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance.html

一、实现继承的几种方式

##1.1 在构造函数中使用apply或者call实现继承

    //定义一个人
    function Person(name, age) {
        this.name = name;
        this.age = age;
    }
    
    //定一个男人 继承 人
    function  Man(){
        Person.apply(this,arguments);
    }
    
    var man = new Man('张三',22);
    console.log(man.name+', '+man.age); // 输出 张三, 22

1.2 原型模式实现继承

   //定义一个人
    function Person() {
        this.type ='人类';
    }


    //定一个男人 继承 人
    function  Man(name, age){
        this.name = name;
        this.age = age;
    }

    Man.prototype =  new Person(); //将Man的原型指向Person的一个实例
    Man.prototype.constructor = Man; //因为Man的prototype被重新赋值了,constructor也需要重新指向Man(如果这里不设置,constructor将指向Person)

    var man = new Man('zhangsan',11);

    console.log(man.name+', '+man.age+', '+man.type);