图解原型和原型链

图解原型和原型链前言知识 结论 原型 把一个函数称为类的话 原型就是每个类都有的属性 作用 给这类添加属性 分为两类 显式原型 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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • poe交换机可以当普通交换机吗?-芝士回答_poe交换机和poe交换机对接

    poe交换机可以当普通交换机吗?-芝士回答_poe交换机和poe交换机对接PoE交换机是一种新型的多功能交换机,很多人认为PoE交换机可以自行发电,这种说法并不正确,通常所讲的PoE交换机供电指的是PoE交换机通过网线来给其他设备供电,与此同时也不丢失传输数据的功能。那么,PoE交换机和普通交换机又有什么区别呢?可以将PoE交换机当做普通的交换机来使用吗?本文将为您揭晓这两个问题的答案。PoE交换机和普通交换机的区别PoE交换机和普通交换机都是可以传输数据的网络设备,但两者之间又有什么差别呢?下文会将PoE交换机和普通交换机进行对比,以便能够帮助您更加深入的了解二者之间的

    2022年10月5日
    3
  • 如何理解python报错信息_csb报错

    如何理解python报错信息_csb报错#软件版本python3.7pycharm2018.3.1遇到的问题解释及处理方法#1报错#TypeError:‘key’isaninvalidkeywordargumentforprint()代码:def_cmp(x,y):ifx>y:return-1ifx<y:return

    2022年8月28日
    3
  • bzero用法_pzero是什么意思

    bzero用法_pzero是什么意思bzero用法linux下串口编程使用到了bzero函数原型:externvoidbzero(void*s,intn);用法:#include  功能:置字节字符串s的前n个字节为零且包括‘\0’。  说明:bzero无返回值。  2#include 3#include 4

    2022年10月13日
    6
  • @component使用案例

    @component使用案例

    2021年7月19日
    71
  • hdu 1520Anniversary party(简单树形dp)

    hdu 1520Anniversary party(简单树形dp)

    2021年12月3日
    45
  • reduce实现数组求和_js数组reduce

    reduce实现数组求和_js数组reducereducereduce收敛4个参数,返回的是叠加后的结果,原数组不发生变化,回调函数返回的结果//从左向右//prev代表前一项,cur代表当前项【求和】letarr=[1,3,5,8,9,7];letsum=arr.reduce(function(prev,cur,index,arr){ //return100;//本次的返回值…

    2022年9月27日
    3

发表回复

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

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