js面向对象之组合继承

作者: 前端来入坑 | 来源:发表于2018-09-10 16:22 被阅读1次

首先先上一段代码

function SuperType(name) {
    //父函数的自定义属性
    this.name = name;
    this.age = colors = ["red","orange","black"];
};

SuperType.prototype.sayName = function() {
     //父函数原型中定义的方法
    console.log(this.name);
};

//定义子函数
function SubType (name,age) {
    //子函数继承父函数的属性
    //借用构造函数实现对实例属性的继承
    SuperType.call(this,name);    
    //子函数定义自己的属性
    this.age = age;
}

//子函数继承父函数的方法
//通过原型链对原型属性和方法的继承
SubType.prototype = Object.create(SuperType.prototype);
    //下面注释的这种写法子类会具有父类实例的方法,不推荐
    //SubType.prototype = new SuperType();
SubType.prototype.constructor =SubType;

//自定义子函数的方法
SubType.prototype.sayAge = function() {
    console.log(this.age);
}

//测试
var instance1 = new SubType("LLL","24");
instance1.colors.push("pink");
console.log(instance1.colors);//"red,orange,black,pink"
instance1.sayName;//"LLL"
instance1.sayAge;//"24"

//测试2
var instance2 = new SubType("XXX","25");
console.log(instance2.colors);//"red,orange,black"
instance2.sayName;//"XXX"
instance2.sayAge;//"25"

相关文章

  • js面向对象之组合继承

    首先先上一段代码

  • JS汇总---面向对象&数组

    面向对象 js原型链的继承 静态属性怎么继承 js原型链以及特点 面向对象有哪几个特点 封装,继承,多态 对象的继...

  • js面向对象之 继承

    继承的几种实现方案: 01属性拷贝(浅拷贝) 02原型式继承 03原型链继承 04借用构造函数 05组合继承 06...

  • python的面向对象

    python的面向对象(ObjectOriented,OO)-面向对象编程-基础-公有私有-继承-组合,Minxi...

  • Python OOP-1

    0. OOP-Python面向对象 Python面向对象 面向对象编程基础公有私有继承组合,Mixin 魔法函数魔...

  • 【python面试指北】3.类和面向对象

    面向对象编程 封装、继承、多态 组合与继承 优先使用组合(has a)而非继承(is a) 类变量和实例变量的区别...

  • JS_继承进阶

    day19_JS_继承进阶 1.JS中的继承 继承是面向对象中一个比较核心的概念。其他正统面向对象语言都会有两种方...

  • js的继承

    面向对象的继承方式有很多种,原型链继承、借用构造函数继承、组合继承、原型式继承、寄生式继承、寄生式组合继承、深拷贝...

  • 面向对象设计基础&原则

    面向对象设计基础 抽象 封装 继承 多态 面向对象设计原则 封装变化 多用组合,少用继承 针对接口编程,不针对实现编程

  • Java-继承

    继承 继承(inheritance)是面向对象的重要概念。继承是除组合(composition)之外,提高代码重复...

网友评论

    本文标题:js面向对象之组合继承

    本文链接:https://www.haomeiwen.com/subject/rcwsgftx.html