以一道面试题来阐述:简述Number的原型链结构
储备知识
prototype为函数专有,意为原型
____proto__为对象专有,其链式连接,意为原型链
let a = new Number(2)
实例a即为对象,其拥有proto属性,指向的是其函数的prototype,
回归正题
1、Number作为函数,其有prototype对象,对象拥有proto,指向的是Object的prototype,因为万物皆是对象。
Number.prototype.__proto__===Object.prototype
2、Object.prototype也是一个对象,其拥有proto,但是其指向的是null
Object.prototype.__proto__===null
3、Number做为函数,函数在js中也是对象,所以Number也有proto属性;因为函数都是创建自Function,所以Number.proto指向的是Function.prototype
Number.__proto__ === Function.prototype
4、而Function其prototype的proto指向的是Object.prototype
Function.prototype.__proto__ ===Object.prototype
5、Funtion的特殊性,其proto指向的其自己的prototype
Function.__proto__===Function.prototype
所以有
Function.__proto__.__proto__===Object.prototype
网友评论