js之原型链

在JavaScript中,原型链是一种用于实现继承和属性查找的机制。每个对象都有一个内部属性[[Prototype]],这个属性指向创建该对象时使用的构造函数的“prototype"属性。对象的方法和属性定义在它的原型对象上。

1.原型(Prototypes)

在JavaScript中,所有的事物都是对象。这些对象都由一个构造函数创建。例如,当你创建一个数组,实际上调用的是内置的Array构造函数。

每个构造函数都有一个名为"prototype"的属性,这个属性指向一个对象,也就是原型对象。此原型对象自己也有一个属性,称为"constructor",它反向指回构造函数。

function Person() {}var person1 = new Person();console.log(Person.prototype) // 输出: { constructor: ƒ Person(), __proto__: Object }
console.log(Person.prototype.constructor === Person) // 输出:true

2.原型链(Prototype Chain)

当你试图访问一个对象的属性时,JavaScript首先在对象本身查找这个属性。如果找不到,它就会去对象的[[Prototype]](也就是它的构造函数的prototype)中查找,然后是该[[Prototype]]的[[Prototype]],以此类推,直到找到属性或查找到null(原型链的终点)。这个查找过程就是原型链。

function Person() {}
Person.prototype.name = "John";var person1 = new Person();console.log(person1.name) // 输出:"John"

3.原型链经典图

在这里插入图片描述
可以看出以下几点:

  • 构造函数的原型的构造是他本身;
  • 原型链的终点是null;
  • 对象的原型是构造函数的原型;
  • 函数可以分为函数和对象两种原型,要看具体是怎么创建的。

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

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

相关文章

RHCE——一、OpenEuler22.03安装部署及例行性任务

RHCE 一、OpenEuler22.03安装部署及例行性任务 一、网络服务1.准备工作2、RHEL9操作系统的安装部署3、配置并优化OpenEuler22.034、网络配置实验:修改网络配置 二、例行性工作1、 单一执行的例行性任务:at(一次性)at命令详解 2、循…

AI赋能下的研发新时代:2024年研发趋势展望

引言: 在技术的迅猛发展下,人工智能(AI)已经不再是科幻小说中的幻想,而是我们日常生活和工作中不可或缺的一部分。特别是在研发领域,AI的应用已经逐渐渗透到了各个环节,为科学家、工程师和研究…

[综述笔记]Graph Neural Networks in Network Neuroscience

论文网址:Graph Neural Networks in Network Neuroscience | IEEE Journals & Magazine | IEEE Xplore 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正&#xf…

linux进程间通信-消息队列

Linux下使用C语言实现进程间的通讯-消息队列 Linux进程间通信-消息队列(IPC、mq)C/C代码接口 Linux 进程间的通信(三)—消息队列

电脑打字突然变成繁体字如何修改

1. 右键电脑右下角的“中”字 2. 点击字符集,选中简体即可 有用的话记得给我点个赞啊~ 靴靴!

学习数据结构和算法的地13天

题目讲解 尾插 #include <stdio.h> #include <stdlib.h> // 定义顺序表结构 #define MAX_SIZE 100 struct ArrayList {int array[MAX_SIZE];int size; // 当前元素个数 }; // 初始化顺序表 void init(struct ArrayList *list) {list->size 0; // 初始时元素个…

【Leetcode每日一题】 位运算 - 位1的个数(难度⭐)(32)

1. 题目解析 题目链接&#xff1a;191. 位1的个数 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 核心在于计算题目所给32位二进制数1的个数返回即可。 2.算法原理 位运算特性&#xff1a;通过位运算&#xff0c;特别是按位与(&…

PLC的FC与FB模块程序的功能解析

前文讲了在西门子系列的PLC中四个程序模块的描述&#xff0c;从S7-1200PLC开始就有FC和FB程序块了&#xff0c;但在使用的时候&#xff0c;一些使用者还是不好理解&#xff0c;以至于不知道该如何选择。今天&#xff0c;我们就用大白话的方式给大家讲解FC与FB的功能。 1、FC与…

ElasticSearch 与java的结合使用(二)

不同类型商品数量 {"size": 0, "aggs": {"type_group": {"terms": {"field": "type.keyword"}}} }SearchRequest request new SearchRequest();request.indices("product");// 按照类型分组统计数量A…

zzu2024三月招新(A-F,I-L)

目录 1.A 2.B 3.C 4.D 5.E 6.F 7.I 8.J 9.K 10.L 先吐槽一波,比赛的dev超级难用,没有编辑错误提示,不能复制样例,太草了,开局还开错题了,第一个小时没出题,还好后面写了几个签到,最后出了7题. 1.A 这题n比较小,只有1e3,可以n方暴力过,稍大一点就很难了.具体来说就是…

代码随想录算法训练营第五十五天 583. 两个字符串的删除操作、 72. 编辑距离、 编辑距离总结篇

代码随想录算法训练营第五十五天 | 583. 两个字符串的删除操作、 72. 编辑距离、 编辑距离总结篇 583. 两个字符串的删除操作 题目链接&#xff1a;https://leetcode.cn/problems/delete-operation-for-two-strings/ class Solution {public int minDistance(String word1, …

计算机基础专升本笔记-汇总笔记(五)office最最最基础背诵一

计算机基础专升本笔记-汇总笔记&#xff08;五&#xff09;office最最最基础背诵一 一、Word文档视图 页面视图阅读版式视图Web版式视图大纲视图&#xff08;只能看见文字&#xff0c;不显示图片&#xff09;草稿视图&#xff08;显示标题正文&#xff0c;水平标尺&#xff0…

02-组件化编程与Vu额 Click脚手架

1.Vue组件化编程(只有1个数字是一级标题) 1.1 模块与组件、模块化与组件化(两个数字组成是二级标题) 1.1.1模块(三个数字是三级标题 依次类推) 理解&#xff1a;向外提供特定功能的 js 程序&#xff0c;一般就是一个 js 文件为什么&#xff1a;js 文件很多很复杂作用&#xf…

Python基础知识:运算符详解

前面我们讲完了Python的基础语法、基本的数据类型以及各种数据类型间的转换。现在可以进行Python的基础知识的逐步详解学习了。下面我们开始讲解Python基础知识&#xff1a;运算符。 在Python中&#xff0c;运算符是用于执行各种操作的符号&#xff0c;它们可以对数字、字符串…

insert append nologging 对Dataguard 影响 DG的同步修复

----Force Logging 对dataguard 没有影响&#xff0c;所以日志大小也没有多大影响 若是该库在有备库的状况下&#xff0c;由于主库的 nologging 插入操做不会生成 redo &#xff0c;因此不会在备库上传输和应用&#xff0c;这会致使备库的数据出现问题。 在一个具备主备关系的…

智能时代的魔法助手:大型语言模型如何让生活和工作焕然一新

大型语言模型的奇妙应用&#xff1a;让生活更便捷、工作更高效 引言 你有没有想过&#xff0c;未来的科技会如何改变我们的生活和工作方式&#xff1f;在这个快速发展的时代&#xff0c;人工智能已经逐渐渗透到我们的日常生活中&#xff0c;其中&#xff0c;大型语言模型作为…

10.网络文件系统( NFS)使用

网络文件系统&#xff08; NFS&#xff09; 使用 NFS 优点&#xff1a; 开发过程中不受开发板空间的限制&#xff0c;直接使用网络文件就像使用本地文件一样&#xff1b;调试过程中避免一一将编译后的应用程序和库文件复制到开发板上。 在开发板中使用网络文件系统可以为开发和…

YOLO语义分割标注文件txt还原到图像中

最近做图像分割任务过程中&#xff0c;使用labelme对图像进行标注&#xff0c;得到的数据文件是json&#xff0c;转换为YOLO训练所需的txt格式后&#xff0c;想对标注文件进行检验&#xff0c;即将txt标注文件还原到原图像中&#xff0c;下面是代码&#xff1a; import cv2 im…

GitHubDesktop

GitHub Desktop官网&#xff1a;https://desktop.github.com/ 汉化补丁官网&#xff1a;https://github.com/robotze/GithubDesktopZhTool 备注&#xff1a; Github Desktop汉化&#xff08;最新版&#xff0c;支持Win、Mac、Linux平台&#xff09; Github Desktop 汉化(最新…

我们的一生都是在挤火车。

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 昨天从燕郊坐火车回石家庄&#xff0c;由于赶上元旦假期&#xff0c;所有高铁票都售罄&#xff0c;一张普通火车票&#xff0c;还是一周前就买才买到的。 从燕郊站&#xff0c;到北京站&#xff0c;然后地铁去北京西站…