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

背景

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

我们首先看看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博客

相关推荐
han_2 小时前
一篇看懂国内外主流大模型:GPT、Claude、Gemini、DeepSeek、通义千问有什么区别?
前端·人工智能·llm
一行代码一行诗++2 小时前
注释是什么和注释该怎么写(C语言)
java·前端·javascript
涂兵兵_青石疏影2 小时前
beginPath-vs-save详解
前端
泽_浪里白条2 小时前
我在 Superset 6.x 做自定义图表 + Embedded SDK 集成的实战复盘(附踩坑清单)
前端·数据可视化
幽络源小助理2 小时前
小六壬排盘工具源码 自适应双端 纯原生HTML+JS
前端·javascript·html
Championship.23.243 小时前
Open Source Pipeline Skill深度解析:自动化开源贡献全流程
前端·javascript·html
Bigger3 小时前
🧠 前端岗位的"结构性调整":现象背后的冷思考
前端·程序员·ai编程
薯老板3 小时前
vue组件之间的通信
前端·vue.js
迪菲赫尔曼3 小时前
从 0 到 1 打造工业级推理控制台:UltraConsole(Ultralytics + FastAPI + React)开源啦!
前端·yolo·react.js·计算机视觉·开源·fastapi
万邦科技Lafite4 小时前
京东开放API接口:item_get返回参数指南
java·前端·javascript·api·电商开放平台