分享多张自己绘制的 JavaScript 原型图

svg 图片自取

先来个最经典的

在这里插入图片描述

然后是对象与 Object

在这里插入图片描述

接着是函数与 Function。图中的 [[Prototype]] 指的就是原型对象

在这里插入图片描述

Function 和 Object 之间的关系也不能少。

这两个对象 Object 和 Function 是由 v8 自己创建的,理由是打印这两个对象时,终端输出

	ƒ Object() { [native code] }ƒ Function() { [native code] }

然后,根据下面关系画出原型图:

Function.prototype === Object.__proto__Object.__proto__.__proto__ === Object.prototype

在这里插入图片描述

将上面内容结合起来,就是这样的图:

fn.__proto__ === Object.__proto__fn.__proto__.__proto__ === ({}).__proto__Object.__proto__.__proto__ === ({}).__proto__

在这里插入图片描述

创建一个函数时,默认会自动为其创建一个原型对象,也就是 prototype 对象

(new Fn()).__proto__ === Fn.prototype

在这里插入图片描述

换个画法:

在这里插入图片描述

最后再送两张福利图

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/597114.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django複習總結

①Django是框架。那麼什麼是框架: 框架很像是一個骨架,帶有很多默認器官的骨架。我們可以根據需要改寫、複寫這些器官。 從而實現自己所需要的功能。 ②Django是MVC模型\MVT模型: MVC模型:M:models模型層 V&#…

C语言 | Leetcode C语言题解之第12题整数转罗马数字

题目: 题解: const char* thousands[] {"", "M", "MM", "MMM"}; const char* hundreds[] {"", "C", "CC", "CCC", "CD", "D", "DC"…

ubuntu系统安装k8s1.28精简详细步骤

目录 一、规划二、环境准备2.1 配置apt仓库配置系统基本软件仓库配置k8s软件仓库安装常用软件包 2.2 修改静态ip、ntp时间同步、主机名、hosts文件、主机免密2.3 内核配置2.4 关闭防火墙、selinux、swap2.5 安装软件安装docker安装containerd安装k8s软件包 三、安装配置k8s3.1 …

WEBAPIS知识案例总结(续)

其他事件 页面加载事件 加载外部资源(如图片,外联css和js等)加载完毕时触发的事件有时候需要等页面资源全部处理完之后做一些事情老代码喜欢把script写在head中,这时候直接找dom元素找不到事件名:load监听页面所有资…

Qt环形颜色选择控件, 圆环颜色选择器

参考文章Qt编写自定义控件:环形颜色选择控件_qconicalgradient圆环渐变-CSDN博客 感谢作责提供的方法,下面程序的基础思路同参考文章。 为了更方便使用,这个选择器是基于64色表的,会显示选中的索引和色值。颜色选择时计算方式也…

[护网必备]知攻善防实验室蓝队应急响应工具箱v2024.4

前言 蓝队工具箱是为打造一款专业级应急响应的集成多种工具的工具集,由真实应急响应环境所用到的工具进行总结打包而来,由 ChinaRan404,W 啥都学,清辉等开发者编写.把项目现场中所用到的工具连同环境一同打包,并实现“可移植性”“兼容性”“…

【Linux-运维】查看操作系统的指定端口占用情况确定端口是哪个服务占用

不同的查看端口占用的方法,应用场景有所不同 一、查询某个端口是否被占用?lsof -i:端口号lsof -i:协议 查看某个协议的占用情况netstat -tlnp|grep 端口号ss -tlnp|grep 端口号fuser 端口号/协议ls -l /proc/$(lsof -t -i:端口号)|grep exe 二、确认指定…

MySQL-基本SQL语句编写:运算符练习

运算符练习 1.选择工资不在5000到12000的员工的姓名和工资 SELECT last_name,salary FROM employees #where salary not between 5000 and 12000; WHERE salary < 5000 OR salary > 12000;2.选择在20或50号部门工作的员工姓名和部门号 SELECT last_name,department_id…

[AIGC] Spring Interceptor 拦截器详解

文章目录 什么是Spring Interceptor如何使用Spring InterceptorSpring Interceptor的影响 什么是Spring Interceptor Interceptor&#xff08;拦截器&#xff09;是Spring MVC框架中的一种特性&#xff0c;类似于Servlet开发中的Filter&#xff08;过滤器&#xff09;&#xf…

Springboot 测试模块 + 注入bean失败

1.添加依赖 <dependencies><!-- ... 其他依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency> </depende…

Vue3从入门到实战:掌握状态管理库pinia(上部分)

1.新的状态管理工具pinia Pinia 是一个状态管理库&#xff0c;通俗点讲&#xff0c;它的主要作用就是帮助我们在 Vue 3 应用中更好地管理和维护组件的状态。 举例子解释&#xff1a; 新建一个Count.vue文件&#xff0c;功能用来计数求和。 <template><div class&q…

气象数字孪生的主要功能模块

气象数字孪生是一种创新的技术应用&#xff0c;它通过创建现实世界气象条件的虚拟副本&#xff0c;为气象监测、预报和决策提供强大的支持。以下是气象数字孪生的主要功能模块。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.综合态…