美文网首页
JS继承的几种方式

JS继承的几种方式

作者: 井皮皮 | 来源:发表于2017-07-09 23:24 被阅读0次

关于Js继承的几种方式,总结一下,以便查看。

第一种 prototype 引用型原型继承

语言支持:js原生支持的继承方式 构造器的的prototype属性作为类的原型 每个该类的对象都持有一个到原型的引用 当对象中的属性不存在时 可以访问原型的属性

代码示例:

function parent(){

      this.x=10;

}

function child(){

}

child.prototype=new parent();

var childObj=new child();

alert(childObj.x);

第二种 复制型原型继承

语言支持:js new运算符的性质 当构造函数return值为非空对象时 new表达式返回return的对象

代码示例:

function parent(){

        this.x=10;

}

function child(){

      var ret=new parent();

      ret.y=20;

      return ret;

}

var childObj=new child();

alert(childObj.x);

第三种 类继承 属性抄写

语言支持:for in枚举对象所有属性

代码示例:

function parent(){

        this.x=10;

}

function child(){

      var parentObj=new parent();

      for(var p in parentObj){

              this[p]=parentObj[p];

      }

}

var childObj=new child();

alert(childObj.x);

第四种 类继承 对象冒充

语言支持:

1.动态添加和删除方法

2.函数的call和apply

代码示例:

function parent(){

        this.x=10;

}

function child(){

        this.parent=parent;

        this.parent();

        delete this.parent;

}

var childObj=new child();

alert(childObj.x);

function parent(){

        this.x=10;

}

function child(){

          parent.call(this);

}

var childObj=new child();

alert(childObj.x);

第五种 原型抄写

语言支持:通过修改类的原型对象 可以为一类对象添加属性和方法

代码示例:

function parent(){}

parent.prototype.me=function(){

        alert("parent")

};

function child(){}

for(var p in parent.prototype){

                child.prototype[p]=parent.prototype[p];

}

var childObj=new child();

childObj.me();

第六种 元类

语言支持: js函数都是对象 且js函数可被构造

代码示例:

function parent(string){

        var child=new                                          Function("this.x=10;"+string);   

        return child;

}

var child=new parent("this.y=20;");

var childObj=new child();

alert(childObj.y);

相关文章

  • js几种继承方式

    注意: 1,constructor总是指向类的构造函数 2,__proto__指向父类的原型对象 1,原型链继承 ...

  • JavaScript 继承

    继承是JS中非常内容,原因就是JS没有地道的继承方式,我们只能通过各种方式来模拟面向对象中的继承。下面介绍几种常见...

  • JS继承的几种方式

    关于Js继承的几种方式,总结一下,以便查看。 第一种 prototype 引用型原型继承 语言支持:js原生支持的...

  • JS继承的几种方式

    JS继承的几种方式 (1) 属性拷贝 存在问题: 如果继承过来的成员是引用类型的话,那么这个引用类型的成员在父对象...

  • js继承的几种方式

    1 原型链继承 把子类的prototype指向父级的实例,也就是原型链继承 此继承方法优 简单明了,父级新增的属性...

  • js继承的几种方式

    在我近三年的职业生涯中,老实说,我很少需要自己去写一个类,然后继承,然后如何如何去调用这些方法,除了有一次公司紧急...

  • 聊一聊js的几种继承方式

    在js中, 很多地方需要使用到继承, 废话少说, 今天来聊一聊js几种继承方式的优缺点 构造函数继承functio...

  • JavaScript常见的继承方式

    前言 JS作为面向对象的弱类型语言,继承也是其非常强大的特性之一。那么在JS中常见的继承方式有几种呢? 方式一、原...

  • js 的继承的几种方式

    js 继承有6种方式的代码。 js继承的6种方式[https://www.cnblogs.com/Grace-zy...

  • 彻底弄清js继承的几种实现方式

    js有几种经典的继承方式。比如原型链继承、构造函数继承、组合继承、寄生组合继承、ES6继承。让我们一一分析并实现。...

网友评论

      本文标题:JS继承的几种方式

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