图解原型和原型链

图解原型和原型链前言知识 结论 原型 把一个函数称为类的话 原型就是每个类都有的属性 作用 给这类添加属性 分为两类 显式原型 prototype 和隐式原型 proto 所有函数对象 Function 都有显式原型 所有对象 如 Object Function Array 等对象 都有隐式原型原型链 本质是链表 proto 相当于链表的指针 指向下一个对象 每个对象都有 proto 属性 它指向构造函数的 prototype 属性 构造函数的 prototype 属性的 proto 属性

前言知识、结论:

原型:

  • 把一个函数称为类的话,原型就是每个类都有的属性
  • 作用:给这类添加属性
  • 分为两类:显式原型prototype 和 隐式原型 __proto__
  • 所有函数对象(Function)都有显式原型
  • 所有对象(如Object、Function、Array等对象)都有隐式原型

原型链:

  • 本质是链表,__proto__相当于链表的指针,指向下一个对象
  • 每个对象都有__proto__属性,它指向构造函数的prototype属性,构造函数的prototype属性的__proto__属性指向下一个对象的peototype属性,就这样一层层网上查找,直到找到最顶层的对象Object.prototype。这个过程就是原型链
  • 函数的顶层对象是Function.prototype
  • 对象的顶层对象是Object.prototype

new 的过程:

  • 使用 new 关键字,首先创建了一个空的对象 
  • 这个空的对象有__proto__属性,指向的是它的构造函数的prototype属性
  • 将this指向的是new 出来的实例对象 
  • 执行构造函数里面的语句
  • 最后返回新的对象,如果构造函数有return 值,就返回return值

图解原型链:

图解原型和原型链


原型链相关应用:

  • instanceof:在原型链上一层层查找,如果在原型链上有该对象,返回true
  • 继承:
    • ES6:extends
    • ES5:原型链继承、构造函数继承、组合继承、寄生组合继承
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232612.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 建站神器:Hexo+Kaze+Gitee Pages 搭建静态博客网站

    建站神器:Hexo+Kaze+Gitee Pages 搭建静态博客网站▲点击上方公众号名称,置顶或星标@蜗牛互联网这是蜗牛互联网的第74期原创。作者l白色蜗牛来源l蜗牛互联网(ID:woniu_internet)转载请联系授权(微信ID:91…

    2022年9月2日
    14
  • 如何更换tomcat版本

    如何更换tomcat版本eclipse如何更换tomcat版本呢?其实很简单首先选中项目,右键,如图选中tomcat,点击删除按钮,如下图tomcat已经没有了,点击addlibrary…,然后添加serverruntime(tomcat环境),点击next按钮我安装了两个tomcat,选择自己本地需要的tomcat,点击finish按钮tomcat已经添加至项目里,点击ok看,项目里已经换过…

    2022年8月30日
    4
  • MySQL数据库备份与还原

    MySQL数据库备份与还原#第一种通过命令:mysqldump-uroot-p密码需要备份的数据库名>备份后的sql脚本名;cmd–>mysqldump-uroot-proot16jike2_account>D:\16jike2_account_back.sql注意:备份名称与原数据库名称一致!通常:备份数据库名_back.sql还原备份的文件数…

    2022年4月29日
    49
  • Winform屏幕截图保存C#代码

    代码如下:已在项目中实现:http://hovertree.com/h/bjaf/76q5yeli.htm

    2021年12月21日
    39
  • pytest指定用例_测试用例怎么编写

    pytest指定用例_测试用例怎么编写前言测试用例在设计的时候,我们一般要求不要有先后顺序,用例是可以打乱了执行的,这样才能达到测试的效果.有些同学在写用例的时候,用例写了先后顺序,有先后顺序后,后面还会有新的问题(如:上个用例返回

    2022年7月28日
    8
  • 快排优化Python表示「建议收藏」

    基本快速排序分析以从小到大排序为例*选取一个主元(选取方式多样)*利用主元,将序列分为两个子序列,左侧都比主元小,右侧都比主元大。*对两个子序列重复此操作例如取第一个元素,代码表示如下:defqsort(arr):iflen(arr)<=1:returnarrelse:pivot=arr[0]r

    2022年4月12日
    203

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号