js 的原型链的图(部分)
看过一些介绍原型链的文章,也看过他们画的图,很不理解,为啥画成了意大利面条。
可能他们都是专业人士,专业的方式都得那么画吧。
我还是一个菜鸟,刚刚知道一点原型和原型链。
只是我还是想先用我目前的理解来画一下原型链。
依据
我们先看看各个类型的原型和原型链的情况。
其实js的类型分类也是挺放飞自我的,可以按照 typeof 来分,但是不够细致,还可以分成值类型和引用类型。反正总之挺乱糊的。
Object
可以视为基类,原型也是一个对象,或者说就是自己。反正不用深究,太绕。
proto 指向 null。所以我们可以把 Object 看做原型链的起始点。
String
可以看做是值类型,但是又不完全是值类型,反正总之又是一个不要深究的类型。
自己的原型里面有很多字符串操作。
proto 指向 Object。下同。
Number
数字类型,可以是整数也可以是小数、负数等,总之各种数都包括了。
Math
数学相关的各种函数的集合。他没有 prototype 。
BigInt
新增的一种类型,可以表示更大的数,还没用过,略。
Boolean
真假值。
Symbol
一种唯一标识。
Date
日期时间,原型里面有很多我们常见的函数,好吧其实目前在用dayjs。
RegExp
正则,又爱又恨的东东。
Array
数组,是不是总是为了判断是不是数字而头疼?
Function
这个也是蛮特殊的,虽然我会用,但是我说不清楚。
特例
undefined 和 null 都表示一种“无”,所以也就没有原型和原型链。
未完待续。。。