首页 > 其他分享 >可视化理解constructor、prototype、__proto__形成的指向图

可视化理解constructor、prototype、__proto__形成的指向图

时间:2024-05-21 17:29:25浏览次数:16  
标签:__ 指向 proto 实例 原型 constructor 构造函数

Person类和person实例

首先给出一段js代码:

function Person() {}
const person = new Person()

根据以下规则:

  • 每个实例都有一个__proto__指向其原型对象。
  • 每个构造函数都有一个prototype属性指向其实例的原型对象
  • 每一个原型都有一个prototype指向其实例的构造函数。

于是就有以下指向图:

 

 

原型也是实例

原型也是实例,那么"Person实例的原型.__proto__"指向什么呢?

引入新的规则:

  • 任何原型都是构造函数Object的实例。
  • Object实例的原型也是构造函数Object的实例,但是它的__proto__指向null。

于是就有以下指向图:

 

构造函数也是实例

构造函数也是实例,根据以下规则:

  • 所有构造函数都是Function的实例。(Person.__proto__===Function.prototype结果为true)
  • Function也是Function自身的实例。(Function.__proto__===Function.prototype结果为true)

于是就有以下关系图:

原型、构造函数都是实例 

观察上图,其实构造函数、原型都是实例,它们都有一个__proto__指向一个原型,直到null。


 

标签:__,指向,proto,实例,原型,constructor,构造函数
From: https://www.cnblogs.com/hdxg/p/18204611

相关文章

  • 解决方案 | vb记住上次打开的文件夹
     PrivateSubButton_ImportBasicData_Click(senderAsObject,eAsEventArgs)HandlesButton_ImportBasicData.Click'创建文件对话框对象DimopenFileDialogAsNewOpenFileDialog()'配置文件对话框openFileDialog.Title="请选择一个Excel......
  • 2024.04.23日团队开发第四天
     学习时间2h代码行数160行博客量1篇学习内容对前端页面进行了优化,编写了最基本的登录页面的后端代码<template><viewclass="msg"><cu-custombgColor="bg-black":isBack="false"><blockslot="backText"&......
  • 【pywinauto】TreeViewWrapper 选择不了子元素?
    【日期】2024/5/21【问题】1、TreeViewWrapper选择不了子元素?【分析】item=tree_obj.get_item(path)item.select()select():报错,pywinauto.uia_defines.NoPatternInterfaceError无法解决click():报无对于的函数click_input():模拟鼠标移动对应控件后,再点击,缺点:如果......
  • 4.24团队开发第5天
    学习时间2h代码行数155行博客量1篇学习内容对个人页面进行了制作<template><viewclass="my"><cu-custombgColor="bg-black":isBack="false"><blockslot="backText">返回</block>......
  • python实现ONVIF协议抓取华为摄像头图像
    参考文档:配置摄像机ONVIF协议参数-SDC10.0C系列产品文档-华为机器视觉(huawei.com) 配置摄像机ONVIF协议参数1)登录摄像机Web界面,选择“配置>视音频>视频”,将“编码协议”设置为“H.264”2)进入“网络平台对接”配置,选择“第二协议参数>ONVIF”,进入ONVIF协议参数......
  • 中国北方春夏季田野调查报告
    \[\newcommand{ch}{\operatorname{ch}}\]Chapter13.FieldTheory13.1.域的特征\(\chF\)要么为质数要么为\(0\)。\(1\)张成的子域被称作素子域primesubfield。但这都不是什么重要的东西。域扩张\(K/F\)是指\(K\)拥有\(F\)作为子域,\(F\)被称作该扩张的基域base......
  • AI视频智能分析技术赋能营业厅:智慧化管理与效率新突破
    一、方案背景随着信息技术的快速发展,图像和视频分析技术已广泛应用于各行各业,特别是在营业厅场景中,该技术能够有效提升服务质量、优化客户体验,并提高安全保障水平。TSINGSEE青犀智慧营业厅视频管理方案旨在探讨视频监控和视频分析技术在营业厅场景中的应用,涵盖监控布局与设备选型......
  • Qt 动画播放之QMovie类
    主要是用到QMovie类实现在事件触发时开启动画播放效果(需要注意的是,这个动画播放默认是循环播放的,如果不做特殊处理动画会一直播放)1QMovie*movie=newQMovie("aaa.gif");2ui->movieLabel->setMovie(movie);3movie->start();//启动gif图片4//movie->......
  • elasticsearch存储经纬度且按照范围进行查询
    elasticsearch存储经纬度且按照范围进行查询背景:我在客户那边有很多舆情事件数据,数据里面包含的是有经纬度的,项目需求是用户在系统中输入一个地址,系统就可以查询到该地址100米500米1000米范围内的事件信息,当然了还可以输入事件的关键信息做模糊查询,所以我选择了使用es来存储......
  • 2024.4.26日团队开发第七天
    学习时间1h代码行数50行博客量1篇学习内容主要完成了视频发布页面的展示代码<template><viewstyle="height:700px;"><viewclass="blank"></view><cu-custombgColor="bg-black":isBack="true&q......