当前位置: 首页 > news >正文

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

背景

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

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 这个暑假作业有点特别,帮100位老人开启这个功能
  • 一个很大的文件,文件的每一行是一个很大的数字,如果给你一个单机,内存比较小,存不了这么大的文件,但是硬盘是无限大的,如何对文件做一个排序输出
  • K8S部署MySQL5.7的主从服务
  • MFC程序设计(三)常用复杂控件的使用
  • 从零到上线,乔拓云助力快速构建在线教育平台
  • 【面试题系列Vue05】跟其他人不太一样的 Vue生命周期总结
  • 文案生成器,快速生成改写文案的捷径
  • 《黑神话:悟空》研发公司的薪资水平
  • SpringBoot集成kafka-自定义拦截器(可以在拦截器中做记录日志、安全检查等操作)
  • 汽车线束品牌服务商推荐-力可欣:致力于汽车连接线束和汽车连接器的开发、生产和应用
  • 挂个人-CSDN Java优秀内容博主rundreamsFly抄袭
  • C语言从头学51—多文件项目
  • 培训第三十八天(上传镜像,私有仓库下载镜像,跨主机容器间的通信,harbor软件包下载)
  • RK3568平台(平台总线篇)SPI驱动框架分析
  • C语言家教记录(八)
  • 【5+】跨webview多页面 触发事件(二)
  • 【Leetcode】104. 二叉树的最大深度
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • Java精华积累:初学者都应该搞懂的问题
  • React的组件模式
  • 阿里云购买磁盘后挂载
  • 大数据与云计算学习:数据分析(二)
  • 三栏布局总结
  • 使用Gradle第一次构建Java程序
  • 微服务核心架构梳理
  • 新手搭建网站的主要流程
  • 学习ES6 变量的解构赋值
  • Hibernate主键生成策略及选择
  • Java性能优化之JVM GC(垃圾回收机制)
  • 国内开源镜像站点
  • 通过调用文摘列表API获取文摘
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • #Lua:Lua调用C++生成的DLL库
  • (145)光线追踪距离场柔和阴影
  • (2.2w字)前端单元测试之Jest详解篇
  • (20)docke容器
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (十三)MipMap
  • (四)Android布局类型(线性布局LinearLayout)
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • *算法训练(leetcode)第四十七天 | 并查集理论基础、107. 寻找存在的路径
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .Net 路由处理厉害了
  • .Net--CLS,CTS,CLI,BCL,FCL
  • .net和php怎么连接,php和apache之间如何连接
  • .NET简谈设计模式之(单件模式)
  • .sys文件乱码_python vscode输出乱码
  • /run/containerd/containerd.sock connect: connection refused
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • @media screen 针对不同移动设备