【JS】-JS原型链初学

70 阅读1分钟

1. 先上图--原型链图解

img

2. 理解原型链

-------------注意:结合上图理解-------------

1 . ⭐对象Object 都有一个属性 _ _ proto _ _

  • 构造函数的实例化对象的 _ proto _ 指向该对象的构造函数的原型(该原型有一个构造函数属性既这个构造函数)

img

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…