javascript关于继承解析

 更新时间:2016年05月10日 16:42:57   投稿:jingxian  
下面小编就为大家全面的介绍一下javascript在的继承。希望对大家有所帮助。一起跟随小编过来看看吧

上一篇已介绍了组合继承,现在讲讲剩余的几种继承。

原型式继承

调用一个函数,接收这个函数返回来的对象,这个对象的原型就是传入函数的参数对象。

如:

function  personObject(o){
    function F(){}
    F.prototype = o;
    return new F();
}
var person = {
   name:"Nicholas",
   friends:["Shelby","Court","Van"]
}

var person_one = personObject(person);

从上面的代码中,我们知道person是person_one的原型。ES5中添加了一个方法规范化原型式继承,这个方法是Object.create(),这个方法有两个参数,第一个是作为新对象原型的对象,像上面的person,第二个是为新对象定义额外属性的对象。第二个参数可选。

如:

var person_one = Object.create(person, {
        name: {
            value:"Jon"
      }
});

当你只想让一个对象与另一个对象保持类似时,可以使用原型式继承。

寄生式继承   

在一个函数里实现一次原型式继承,然后为接收到的这个对象添加自己的属性与方法。

如:

function createAnother(o){
   var person_one = personObject(o);
   person_one.sayHi = function(){
       alert(" hi ");
   }
   return person_one;
}

寄生组合式继承

组合继承也有其缺点,它实现了两次属性继承,而寄生组合式继承就避免了这个问题。实例通过构造函数继承了属性,而原型的方法则是通过寄生式继承的方式来继承。

如:

function inherit(subType, superType){
   var prototype = Object(superType.prototype);
   prototype.constructor = subType;
   subType.prototype = prototype;
}

通过调用上面的函数,实现subTye.prototype的原型是superType.prototype,完成了原型方法的继承。

以上这篇javascript关于继承解析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • javascript实现计算器功能详解流程

    javascript实现计算器功能详解流程

    这篇文章主要为大家详细介绍了JavaScript实现简单计算器小功能,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,大家可以在本篇实例中查缺补漏,提升水平
    2021-11-11
  • javascript编程起步(第四课)

    javascript编程起步(第四课)

    javascript编程起步(第四课)...
    2007-01-01
  • 简介JavaScript中的getSeconds()方法的使用

    简介JavaScript中的getSeconds()方法的使用

    这篇文章主要介绍了简介JavaScript中的getSeconds()方法的使用,是JS入门学习中的基础知识,需要的朋友可以参考下
    2015-06-06
  • JavaScript DOM基础

    JavaScript DOM基础

    这篇文章主要介绍了JavaScript的DOM基础知识,需要的朋友可以参考下
    2015-04-04
  • javascript正则匹配汉字、数字、字母、下划线

    javascript正则匹配汉字、数字、字母、下划线

    javascript正则检测只含有汉字、数字、字母、下划线不能以下划线开头和结尾,需要的朋友可以参考下
    2014-04-04
  • Angularjs 设置全局变量的方法总结

    Angularjs 设置全局变量的方法总结

    这篇文章主要介绍了Angularjs 设置全局变量的方法总结的相关资料,需要的朋友可以参考下
    2016-10-10
  • JS创建类和对象的两种不同方式

    JS创建类和对象的两种不同方式

    定义了一个新的函数, 你实际上声明了一个新的类, 而这个函数本身就相当于类的构造函数,下面为大家展示创建一个新类的两种不同方式
    2014-08-08
  • 简单了解JavaScript异步

    简单了解JavaScript异步

    所谓"异步",简单说就是一个任务分成两段,先执行第一段,然后转而执行其他任务,等做好了准备,再回过头执行第二段。比如,有一个任务是读取文件进行处理,下面小编来和大家一起学习一下
    2019-05-05
  • JavaScript 学习笔记 Black.Caffeine 09.11.28

    JavaScript 学习笔记 Black.Caffeine 09.11.28

    这两天终于写出了一个个人认为真正意义上的作业了,不过,最大感受就是。。。IE太垃圾了。。。so,这个作业实际上也没有完成的很完美,因为,在IE上还是有兼容性的问题存在,不错,就此先自我总结一下吧~免得以后又忘了~
    2009-11-11
  • javascript实现的一个随机点名功能

    javascript实现的一个随机点名功能

    这篇文章主要介绍了JS实现的一个随机点名功能,逻辑简单,用在班级或活动时是个不错的选择,需要的朋友可以参考下
    2014-08-08

最新评论