一、基础概念
javascript
一切皆对象,分为函数对象与普通对象,每个对象都有__proto__
属性,只有函数对象才有prototype
属性
每个函数对象都有一个prototype
,即显示原型(属性),每个实例对象都有一个__proto__
,即隐式原型(属性),对象的隐式原型的值为其对应构造函数的显示原型的值
每个函数都有一个prototype
属性,默认指向一个Object
空对象(即称为原型对象),原型对象中有一个属性constructor
,它指向函数对象,给原型对象中添加属性(方法),函数的所有实例对象自动拥有原型中的属性(方法)
二、代码理解
// 实例对象
f1.__proto__ = Fn.prototype
// 构造函数
Fn.prototype.constructor = Fn
Fn.__proto__ = Function.prototype
Fn.prototype.__proto__ = Object.prototype
// Object
Object.prototype.constructor = Object
Object.prototype.__proto__ = null
Object.__proto__ = Function.prototype
// Function
Function.prototype.constructor = Function
Function.__proto__ = Function.prototype
Function.prototype.__proto__ = Object.prototype
复制代码
三、可视逻辑
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END