js 原型链分析

原型链

前景介绍

在 js 中原型链主要是为了实现面向对象语言中继承的特性。

对于前端从业者来说,原型链确实是非常重要,具有划分性的知识,掌握好原型链的问题能让你更好的理解 js 的原型继承机制。

原型链图示

原型链的学习从一张图开始可能更好理解,也应该在学习后能够自己画出来。

这张图可以说是根据几个主要的特点来画出来的:

  1. 任意对象都有自己的原型对象,在 js 中万物皆对象,因此函数也是对象。也就是 __proto__ 属性。
  2. 只有函数有 prototype 属性。
  3. __proto__ 链的尽头是 Object.prototype --> 这个对象的 __proto__属性是 null
  4. 原型链就是顺着 __proto__ 属性向上寻找的路径。主要是用于继承。
  5. 关于上层的 FunctionObject 这两个都是构造函数,互相为对方的实例,JS 引擎在初始化时硬编码实现的,不是靠代码递归创建的。
相关推荐
leaves falling10 小时前
C语言内存函数-
c语言·开发语言
玫城11 小时前
[ VUE ] 封装通用数组校验组件,el-input内使用
前端·javascript·vue.js
至为芯12 小时前
IP6537至为芯支持双C口快充输出的45W降压SOC芯片
c语言·开发语言
小羊羊Python12 小时前
SoundMaze v1.0.1正式发布!
开发语言·c++
浩瀚地学12 小时前
【Java】JDK8的一些新特性
java·开发语言·经验分享·笔记·学习
l1t12 小时前
利用DeepSeek将python DLX求解数独程序格式化并改成3.x版本
开发语言·python·算法·数独
yugi98783814 小时前
基于遗传算法优化主动悬架模糊控制的Matlab实现
开发语言·matlab
moxiaoran575314 小时前
Go语言的错误处理
开发语言·后端·golang
yugi98783815 小时前
MATLAB的多层感知器(MLP)与极限学习机(ELM)实现
开发语言·matlab
Never_Satisfied15 小时前
C#获取汉字拼音字母方法总结
开发语言·c#