1. 先上图--原型链图解
2. 理解原型链
-------------注意:结合上图理解-------------
1 . ⭐对象Object 都有一个属性 _ _ proto _ _
- 构造函数的实例化对象的 _ proto _ 指向该对象的构造函数的原型(该原型有一个构造函数属性既这个构造函数)
2 . ⭐只有函数对象Function 有属性 prototype
- ⭐注意构造函数的实例化对象(一切实例化对象)无prototype!!
- 普通函数的prototype基本无用
3 . ⭐对象的 _ _ proto _ _ 属性指向 该对象 的 构造函数的原型(prototype)
4 . ⭐JS中 有内置的Object构造函数 和内置 Ojbect对象原型
- 内置的Object构造函数 的原型(prototype)指向 内置 Ojbect对象原型
- ⭐内置的Object构造函数 的 _ _ proto _ _ 指向 内置 Function对象原型
- 所有自定义构造函数的_ _ proto _ _ 都指向内置 Ojbect对象原型(若无上级原型)
- ⭐内置 Ojbect对象原型的_ _ proto _ _ 为 Null
5 . ⭐JS中 有内置的Function构造函数 和内置 Function对象原型
- 内置的 Function 构造函数 的原型(prototype) 指向 内置 Function 对象原型
- 内置的 Function 构造函数 的 _ _ proto _ _ 指向 内置 Function 对象原型
- 内置 Function 对象原型 的_ _ proto _ _ 指向 内置 Object 对象原型
参考资料:
[# 一篇文章看懂_proto_和prototype的关系及区别]www.jianshu.com/p/7d58f8f45…
[一篇文章看懂_proto_和prototype的关系及区别] www.jianshu.com/p/7d58f8f45…
[是否所有函数都有prototype] blog.csdn.net/jingshui123…