码迷,mamicode.com
首页 > Web开发 > 详细

js 继承

时间:2018-05-09 12:10:26      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:javascrip   优点   script   const   ||   构造   原型链   继承   nbsp   

/**
 * 组合继承
 */
function Super(name) {
    this.name = name || ‘‘;
}
Super.prototype.age = 23;

function Sub(name) {
    Super.call(this, name);
    this.eat = function() {
        return this.name + eat;
    }
}
Sub.prototype = new Super();
Sub.prototype.constructor = Sub
var sub = new Sub(xiaoming);
console.log(sub);

 

  

/**
 * 寄生组合继承
 */
function Super(name) {
    this.name = name || ‘‘;
}
Super.prototype.age = 23;

function init(Sub, Sup) {
    var proto = Object(Sup.prototype);
    proto.constructor = Sub;
    Sub.prototype = proto;
}
function Sub(name) {
    Super.call(this, name);
    this.eat = function() {
        return this.name + ‘eat‘;
    }
}
init(Sub, Super);
// Sub.prototype = new Super();
// Sub.prototype.constructor = Sub
var sub = new Sub(‘xiaoming‘);
console.log(sub);

  

1、原型链继承

2、构造函数继承

3、组合继承

  其实就是结合了原型链继承和构造函数的继承

  缺点:之类继承父类的过程需要两次调用父类的构造器,这其实很浪费。

4、组合寄生继承

  优点:解决了组合继承的缺点

  缺点:复杂,而且当你改变子类的prototype时,父类的prototype也会改变。

 

js 继承

标签:javascrip   优点   script   const   ||   构造   原型链   继承   nbsp   

原文地址:https://www.cnblogs.com/pengwenfan/p/9012913.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!