zoukankan      html  css  js  c++  java
  • JavaScript里的原型(prototype), 原型链,constructor属性,继承

    ① __proto__constructor 属性是 对象 所独有的。

    prototype 属性是 函数 所独有的。

    ** JS里函数也是引用类型的对象,所以函数也有 __proto__ 和 constructor 属性

      __proto__ 和 原型链

    (1)__proto__ 属性都是由一个对象指向一个对象,即指向它们的 原型对象

    (2)__proto__ 属性存在的作用:当访问一个对象属性A时,如果当前对象自身内部没有这个属性,就会上溯到__proto__ 属性所指的对象(原型对象 / 父级对象),如果父级对象自身也不存在这个属性,则上溯到父级对象的 __proto__ 属性所指的对象,一直上溯到原型链顶端 null, 最终没找到 属性A时,则返回 undefined

    (3)通过 __proto__ 属性来连接对象直到 null 的一条链即是原型链

      prototype

     (1)prototype 属性都是由一个函数A指向一个对象,即函数A的原型对象(父级对象),  这个原型对象也是 由该函数A所创建的(实例化)对象的原型对象

        ( new funA() ).__proto__   ===   funA.prototype

     (2)prototype 属性存在的作用:该属性可以包含所有实例对象共享的属性和方法。( 这里的实例对象是又该函数所实例化的)

       constructor

     (2)constructor 属性都是由:一个对象指向一个函数。指向该函数的构造函数。每个对象都有构造函数,Function这个函数构造函数是它本身。所有函数和对象最终都是由Function构造函数得来,所以 constructor 属性的终点就是Function这个函数。

      继承

      继承是指一个对象直接使用另外一个对象的属性和方法。

    参考连接:https://chen-cong.blog.csdn.net/article/details/81211729

  • 相关阅读:
    Zookeeper and The Infinite Zoo(CF1491D)(位运算)
    树上差分
    最近公共祖先
    极角排序
    最长路spfa
    树的基础
    树的遍历~
    最小圆覆盖板子
    动态凸包(询问点是否在凸包内部)
    凸包内最大三角形
  • 原文地址:https://www.cnblogs.com/winyh/p/11130304.html
Copyright © 2011-2022 走看看