当前位置: 首页 > 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博客


http://www.mrgr.cn/news/7151.html

相关文章:

  • EasyExcel 导入计算公式导出展示字符串问题(SUM)
  • vue3 多文件下载zip压缩包
  • 基于AT32F421的开源电调项目测试
  • 获取当前时间戳
  • Nginx配置负载均衡
  • 如何使用 Java 中的 API 更改 PDF 纸张大小
  • 『基础』线性代数-1行列式
  • 【吊打面试官系列-Memcached面试题】memcached 能接受的 key 的最大长度是多少?
  • 亚信科技转型持久战:扎根行业大模型,深耕行业数字化
  • 户用光伏项目如何操作?
  • 鸿蒙 点击获取电话号拨打电话 @ohos.telephony.call (拨打电话)
  • 【机器翻译方向】数据集合集!
  • 在JavaScript中,如何实现异步编程?
  • Linux驱动入门实验班——DAC模块驱动(附百问网视频链接)
  • [ACTF新生赛2020]music附赠支持多国语言Fuzz语音转录文本翻译软件下载安装使用简介
  • 【jvm】程序计数器的特征
  • 前端css溢出属性overflow
  • [sqlserver][sql]sqlserver跨主机访问 跨数据库访问 数据库链接
  • windows安全软件之火绒杀毒的密码忘记后处理
  • 什么是CUDA