前端面试——什么是原型和原型链

背景

最近看到了很有意思的东西,原型和原型链

我们首先看看MDN怎么讲:继承与原型链 - JavaScript | MDN

不过文档里面也没有给出原型的定义???

不过里面提到原型链,是指对象层层向上寻找原型形成的路径就叫做原型链

后面我参考了一些文章,在这里做一下总结:

参考(超赞):前端面试必考——原型及原型链(涵实例+话术)

我自己的定义:

原型: 每个函数创建好之后,都会添加一个prototype属性,这个就是原型!!!主要用来给实例提供公共属性和方法的。

每个函数都有一个prototype属性,指向其原型

每个引用类型都有一个__proto__属性,指向其构造函数的prototype属性

原型链:就是在代码执行过程中寻找变量,一层一层向上层原型遍历寻找匹配对象形成的这样一条链条

一些结论:

1.对于一个引用类型(对象,数组,函数),我们通常会使用__proto__或者[[prototype]]来表示其原型,为了统一标准,官方推荐使用[[prototype]]来表示其原型,并使用专属的方法来修改原型

2.一个构造函数实例化的对象去寻找变量,先从第一层属性开始找,找不到再从原型上去匹配属性,还找不到再网上找原型,直到找到原型为Object.prototype(在往上就是null)

3.原型主要用来定义公共的属性和方法,利用继承来使得代码简洁

4.原型含有一个constructor引用,指向其构造函数。所以你可以在浏览器中点击prototype之后点击constructor............,这样一直点下去,不过我很好奇,这样为什么不炸???

5.构造函数实例化之后再设置该构造函数的原型只会对实例的原型生效,而不会对该实例本身生效

6.如果父类属性和子类属性有对应的引用属性,那么子类实例对引用属性的修改,会影响到父类实例的对应属性(这个我还没试过)

其他参考:

js 原型链的个人理解记录_沿着原型链一直往上找能找到什么-CSDN博客

JS-原型(prototype),原型链是不是无限套娃?_javascript的原型的原型属于套娃么-CSDN博客

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

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

相关文章

CPP中lamada表达式作用一览[more cpp-6]

一般语法 CPP中的lambda 表达式的本质就是匿名函数,它可以在代码中定义一个临时的、局部的函数.为什么需要lamada表达式? 因为命名是个大问题 想名字以及避免命名冲突是很劳神费力的事,这就是lamada表达式的优点(lamada优点表现为简洁性)总…

如何在不格式化的情况下解锁 Android 智能手机密码

如果您忘记密码,您的 Android 移动设备将锁定您。发生这种情况时,通常可以通过恢复出厂设置来重新获得对设备的访问权限。可悲的是,这将导致所有数据丢失。下面列出的是解锁锁定的Android 手机而不会丢失任何个人数据的有效方法。 Android 手…

编程学习中的“知识宝库”打造秘籍

编程学习中的“知识宝库”打造秘籍 在编程学习的道路上,我们犹如航海家在知识的海洋中探索前行。而高效的笔记记录和整理方法,无疑就是那张珍贵的航海图,引领我们在浩瀚的编程知识海洋中找到方向。 一、为什么需要一个好的笔记系统 编程知…

Ps:首选项 - 界面

Ps菜单:编辑/首选项 Edit/Preferences 快捷键:Ctrl K Photoshop 首选项中的“界面” Interface选项卡可以定制 Photoshop 的界面外观和行为,从而创建一个最适合自己工作习惯和需求的工作环境。这些设置有助于提高工作效率,减轻眼…

单片机外部中断+定时器实现红外遥控NEC协议解码

单片机外部中断定时器实现红外遥控NEC协议解码 概述解码过程参考代码 概述 红外(Infrared,IR)遥控,是一种通过调制红外光实现的无线遥控器,常用于家电设备:电视机、机顶盒等等。NEC协议采用PPM(Pulse Position Modulation&#x…

算法题目杂记

差分 来源 https://www.acwing.com/problem/content/799/ 题目 输入一个长度为 n的整数序列。 接下来输入 m个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加 c。 请你输出进行完所有操作后的序列。 输入格式 第一行包含两个整数…

Vue的计算属性:methods方法、computed计算属性、watch监听属性

1、methods 方法 在创建的 Vue 应用程序实例中,可以通过 methods 选项定义方法。应用程序实例本身会代理 methods 选项中的所有方法,因此可以像访问 data 数据那样来调用方法。 【实例】在 Vue 应用程序中,使用 methods 选项定义获取用户信…

实验16:定时器中断实验

无硬件图&#xff0c;用到D1灯 代码main.c #include<reg52.h>typedef unsigned int u16; typedef unsigned char u8;sbit LED1P2^0;void delay_10us(u16 n) {while(n--); }void delay_ms(u16 ms) {u16 i,j;for(ims;i>0;i--)for(j110;j>0;j--); }void time0_init(v…

使用命令模式实现撤销与重做功能的完整指南

使用命令模式实现撤销与重做功能的完整指南 命令模式是一种行为型设计模式&#xff0c;它将请求封装成对象&#xff0c;以便于对请求进行参数化、排队和记录。命令模式不仅有助于实现撤销和重做功能&#xff0c;还能提高系统的灵活性和可维护性。在本文中&#xff0c;我们将详…

2月公开赛Web-ssrfme

考点&#xff1a; redis未授权访问 源码&#xff1a; <?php highlight_file(__file__); function curl($url){ $ch curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_HEADER, 0);echo curl_exec($ch);curl_close($ch); }if(isset($_GET[url…

数据结构-返回n年后牛的数量

第一年农场有1只成熟的母牛A,往后的每年: 每一只成熟的母牛都会生一只母牛每一只新出生的母牛都在出生的第三年成熟每一只母牛永远不会死 返回N年后牛的数量。 抽象公式就是 F(N) F(N-1) F(N-3). 矩阵公式: |F4, F3, F2| |F3,F2,F1| * 3阶矩阵 |F5, F4, F3| |F4,F3,F2| …

innodb_buffer_pool_size在线缩小操作

一、背景 测试数据库内存32G&#xff0c;只有MySQL数据库&#xff0c;但是innodb_buffer_pool_size设置了24G&#xff0c;导致经常出现lack of memory问题、lack of swap问题。 因为使用了MySQL5.7.36版本&#xff0c;利用innodb_buffer_pool_size参数值可在线调整的新特性&…

HTTP 414错误问题

问题描述&#xff1a; 在一次前端编辑报表完成&#xff0c;打开审核人选择弹出框的时候&#xff0c;layer直接报414错误。 问题分析&#xff1a; HTTP 414是HTTP协议中的一个状态码&#xff0c;表示请求的URI&#xff08;Uniform Resource Identifier&#xff09;过长&#…

进程的创建,结束,回收基础API

1、进程的创建 #include <sys/types.h> #include <unistd.h> pid_t fork(void); 主要功能: 将当前的进程复制一份,然后这两个进程同时从本函数的下一语句开始执行;该函数会返回两次,一次返回父进程,值是子进程的PID,一次返回子进程,值固定为0;父子进程是…

JS中数组去重方法总结

在JavaScript中&#xff0c;数组去重是一个常见的操作&#xff0c;目的是移除数组中的重复元素&#xff0c;确保数组中每个元素都是唯一的。以下是几种常用的数组去重方法&#xff0c;分别适用于不同的情况&#xff1a; 1. 使用 Set 对象 Set 是 ES6 引入的新数据结构&#x…

编程之路:在Bug的迷宫中寻找出口

编程是一种艺术&#xff0c;也是一种科学。它要求我们既要有创造性的思维&#xff0c;又要有严谨的逻辑。在这条充满挑战的道路上&#xff0c;每个人都会遇到挫折&#xff0c;这些挫折可能来自于一个难以解决的Bug&#xff0c;一个复杂的算法&#xff0c;或者是在实现某个功能时…

云手机解决了TikTok哪些账号运营难题?

随着社交媒体的蓬勃发展&#xff0c;TikTok作为一款风靡全球的短视频应用&#xff0c;成为许多个人和企业进行品牌推广、内容创作的首选平台。然而&#xff0c;随之而来的是TikTok账号运营的一系列难题。本文将深入探讨云手机是如何解决这些难题的。 1、多账号运营的便捷性&…

tomcat实战演练

一.tomcat介绍 Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c; Tomcat 具有处理 HTML 页面的功能&#xff0c;它还是一个 Servlet 和 JSP容器。Tomc…

C语言笔试题(指针、数组、整数在内存中的存储、结构体......)

文章目录 1.选择题2.代码题2.1 模拟实现strncat2.2 模拟实现strncpy2.3 编写判断大小端程序2.4 模拟实现atoi2.5 BC38 变种水仙花数2.6 BC98 序列中删除指定数字 今天我们一起来看一些题目 1.选择题 解析如下&#xff1a; 正确选项&#xff1a;B A.参数错误&#xff1b;D.返回…

Prettier+Vscode setting提高前端开发效率

文章目录 前言Prettier第一步&#xff1a;下载依赖&#xff08;团队合作&#xff09;或下载插件&#xff08;独立开发&#xff09;第二步&#xff1a;添加.prettierrc.json文件**以下是我使用的****配置规则** 第三步&#xff1a;添加.prettierignore文件**以下是我常用的****配…