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

  • 相关阅读:
    Win10安装.NetFamework3.5
    SAN和NAS的区别
    raid10模型比raid01模型的冗余度高
    Linux——查找占用磁盘体积最大的前10个文件
    Nginx——端口负载均衡
    oneinstack——证书更新
    SpringBoot——IDEA使用 Spring Initializer快速创建项目【四】
    Nginx——请求head被过滤
    Linux—— 记录所有登陆用户的历史操作记录
    Nginx——跨域造成的504问题
  • 原文地址:https://www.cnblogs.com/winyh/p/11130304.html
Copyright © 2011-2022 走看看