美文网首页
js对象之间的继承

js对象之间的继承

作者: 凡凡的小web | 来源:发表于2019-04-08 13:33 被阅读0次

js的对象之间的继承抛弃了原型与构造器的概念,而转为字面量对象之间进行属性拷贝的方式进行继承。 

首先我们来写一个封装好的继承函数:

function extend(parent){

    varchild={};

    for(variin parent){

        child[i]=parent[i];

    }

    child.uber=parent;

    return child;

}

 函数有一个形参parent,函数内部新建一个空的子对象,这个子对象就像一个白的画板,逐渐的将父对象上的内容临摹上去。for循环当中是将父对象中的属性和方法逐个复制给子对象。再将子对象的uber指向父对象,这样调用子对象的uber属性就可以调用父对象的属性和方法了,这相当与java中的super,为什么js当中不用super呢,因为super在js中是保留字,所以采用德语与“super”同义的“uber”来替代。

下面来看看这个函数的实际应用,首先创建一个父对象:

varShape={

    color:"blue",

    name:"shape",

    getName:function(){

        returnthis.name;

    }

}

接着我们来实现继承,并扩展和重写子对象的一些方法:

varcircle=extend(Shape);

circle.name="circle";

circle.getName=function(){

    return"parentName:"+this.uber.getName()+" childName:"+this.name;

}

circle.getS=function(){

    returnthis.radius*this.radius*3.14;

}

circle.init=function(radius){

    this.radius=radius;

}

首先使用extend函数实现继承

子对象添加了新的name属性和新的getName方法,还有扩展的getS方法和init初始化方法

getName中this.uber.getName()调用父对象的getName()方法,得到父对象的name属性,this.name得到自身的name属性。

接下来执行方法:

circle.init(5);

console.log(circle.name+","+circle.uber.name);

console.log(circle.getName()+","+circle.uber.getName());

console.log(circle.getS());/*结果:

circle,shape

parentName:shape childName:circle,shape

78.5*/

原文https://www.cnblogs.com/smartXiang/p/5890952.html

相关文章

  • js对象之间的继承

    js的对象之间的继承抛弃了原型与构造器的概念,而转为字面量对象之间进行属性拷贝的方式进行继承。 首先我们来写一个封...

  • js_继承及原型链等(四)

    js_继承及原型链等(三) 1. 继承 依赖于原型链来完成的继承 发生在对象与对象之间 原型链,如下: ==原型链...

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

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

  • js对象的三种继承方式

    js对象的三种继承方式转载 2017年06月23日 15:07:56 13300一,js中对象继承对象的js中有三...

  • JS中继承的实现

    JS中继承的实现 #prototype (js原型(prototype)实现继承) 全局的Function对象没有...

  • JS对象和继承

    JS对象和继承 JS是个无类的语言,因此对于对象构造器(类)和对象的继承就值得我们研究了。本文讲述JS中构造器的表...

  • JavaScript中的继承

    一.继承基础知识 prototype和proto之间的区别 每一个js对象都有proto对象(值就是它所对应的原型...

  • JS中继承的写法

    继承是类和类之间的关系,继承使得子类别具有父类别的属性和方法。 js里常用的如下两种继承方式: 原型链继承(对象间...

  • js 对象继承

  • js 对象继承

    内容来自《JavaScript高级程序设计》第三版第6章第3节 原型链 ECMAScript中描述了 原型链的概念...

网友评论

      本文标题:js对象之间的继承

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