美文网首页
Javascript原型链

Javascript原型链

作者: 慕容跳凯 | 来源:发表于2017-01-04 23:08 被阅读0次

原型链的继承就是将子类的prototype.__proto__链接到父类的prototype,借此完成原型链

child.prototype.__proto__.= parent.prototype

实例化的对象没有prototype,prototype是函数特有的属性,所有的对象都有__proto__, 这是指向实例化这个对象的类的prototype,所有对象的原型链最后是null

下面是经典的原型链继承的例子,我借此解释一下

  function extend(Child, Parent) {
    var F = function(){};
    //将父类的prototype复制到F函数中
    F.prototype = Parent.prototype;
    /*new F()实例化F()实际的作用是生成了一个下面这个对象
    {
       __proto__: {
           //Parent.prototype
       }
    }
    这样就完成了
    Child.prototype.__proto__ = Parent.prototype这个原型链继承的核心内容
    */
    Child.prototype = new F();
    //Parent.prototype的constructor是Parent,为了准确这里要手动将Child.prototype.constructor改为Child
    Child.prototype.constructor = Child;
    //这里是为了代码实际开发时方便调用父类,不用使用__proto__
    Child.uber = Parent.prototype;
  }

涉及到继承这一块,Javascript 只有一种结构,那就是:对象。在 javaScript 中,每个对象都有一个指向它的原型(prototype)对象的内部链接。这个原型对象又有自己的原型,直到某个对象的原型为 null 为止(也就是不再有原型指向),组成这条链的最后一环。这种一级一级的链结构就称为原型链(prototype chain)。---MDN原型链描述

上面这句话有些长,看代码获取会直观一点

childClass.prototype.__proto__ == parantClass.prototype

childInstance.__proto__ == childClass.prototype

childInstance.__proto__.__proto__ == childClass.prototype.__proto__ == parantClass.prototype

对于这里的childInstance.__proto__ == childClass.prototype,是由关键字new实现的,具体可以看我的另外一篇文章new到底做了什么

参考文献
Javascript继承机制的设计思想
Javascript面向对象编程(二):构造函数的继承
继承与原型链

相关文章

  • 【javascript】继承

    javascript只支持实现继承,而且继承主要是依靠原型链来实现的。 原型链 javascript将原型链作为实...

  • js原型、原型链、继承的理解

    一、原型、原型链 原型是Javascript中的继承的基础,JavaScript的继承主要依靠原型链来实现的。 原...

  • javaScript原型链

    javaScript原型链概念JavaScript之继承(原型链)数据结构var Person = functio...

  • 原型、原型链

    (什么是原型、原型链?有什么作用) JavaScirpt深入之从原型到原型链 图解 Javascript 原型链 ...

  • JavaScript 原型、原型链与原型继承

    原型,原型链与原型继承 用自己的方式理解原型,原型链和原型继承 javascript——原型与原型链 JavaSc...

  • javascript碎片知识001

    javascript中的对象(原型,原型链) 什么是原型? 原型是JavaScript中的继承的基础,JavaSc...

  • 面试题 Javascript

    介绍JavaScript的基本数据类型。 说说写JavaScript的基本规范? JavaScript原型,原型链...

  • JavaScript 基础知识点

    介绍JavaScript的基本数据类型。 说说写JavaScript的基本规范? JavaScript原型,原型链...

  • 原型和原型链篇

    原型和原型链 1.理解原型设计模式以及JavaScript中的原型规则 原型设计模式JavaScript是一种基于...

  • 原型链 完整版(JavaScript)

    原型链 完整版(JavaScript)

网友评论

      本文标题:Javascript原型链

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