继承

1.原型链继承

    Father.prototype.lastName = 'Jason';
    function Father() {}
    function Son() {}
    
    // 此处实现继承
    Son.prototype = new Father();
    
    var son = new Son();
    console.log(son.lastName) // Jason

2.伪经典继承(借用构造函数)

    Father.prototype.sex = 'man';
    function Father(name) {
        this.name = name;
    }
    function Son(name, age) {
        Father.call(this, name);
        this.age = age;
    }
    Son.prototype = new Father(); 
    
    var son = new Son();
    console.log(sex) // man

3.寄生组合式继承(圣杯继承)

    function inherit (Target, Original) {
        function F () {}
        F.prototype = Original.prototype;
        Target.prototype = new F();
        Object.defineProperty(Target.prototype, 'constructor', {
            enumerable: false,
            value: Target
        });
    }
    function Father () {}
    function Son () {}
    inherit(Son, Father);
    Father.prototype.lastName = "Jason";

    var son = new Son();
    console.log(son.lastName) // Jason
推荐使用最后一种
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容