js 原型链分析

原型链

前景介绍

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

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

原型链图示

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

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

  1. 任意对象都有自己的原型对象,在 js 中万物皆对象,因此函数也是对象。也就是 __proto__ 属性。
  2. 只有函数有 prototype 属性。
  3. __proto__ 链的尽头是 Object.prototype --> 这个对象的 __proto__属性是 null
  4. 原型链就是顺着 __proto__ 属性向上寻找的路径。主要是用于继承。
  5. 关于上层的 FunctionObject 这两个都是构造函数,互相为对方的实例,JS 引擎在初始化时硬编码实现的,不是靠代码递归创建的。
相关推荐
Elnaij2 小时前
从C++开始的编程生活(13)——list和浅谈stack、queue
开发语言·c++
格鸰爱童话2 小时前
next.js(二)——从react到next.js
前端·javascript·react.js
Hammer Ray5 小时前
SourceMap知识点
javascript·sourcemap
一晌小贪欢6 小时前
【Python数据分析】数据分析与可视化
开发语言·python·数据分析·数据可视化·数据清洗
草莓火锅8 小时前
用c++使输入的数字各个位上数字反转得到一个新数
开发语言·c++·算法
j_xxx404_8 小时前
C++ STL:阅读list源码|list类模拟|优化构造|优化const迭代器|优化迭代器模板|附源码
开发语言·c++
DreamNotOver8 小时前
批量转换论文正文引用为上标
开发语言·论文上标
散峰而望8 小时前
C/C++输入输出初级(一) (算法竞赛)
c语言·开发语言·c++·算法·github
fie88898 小时前
基于MATLAB的狼群算法实现
开发语言·算法·matlab