原型及原型链 (一篇搞懂原型链)

1、原型链概念:

        (1)对象的创建;(2)对象的组织结构;(3)对象访问成员规定

2、原型就是对象

        函数对象——指的就是平时称呼的对象

        实例对象——new出的对象

        原型对象——所有的函数对象都有一个对应的原型对象,所有的原型对象都是被Object函数对象创建出来的

3、原型链的创建过程:

       (1)源头:Function函数是对象自动产生的第一个对象(在数据段中)

       (2)除了Function函数对象之外,所有的函数对象都是由Function函数对象创建的 (我们自己写的函数对象也是由Function创建的)

       (3)Function会自动创建出很多函数对象出来

       (4)Function自动创建的第一个函数对象是Object函数对象

       (5)Function还会自动创建出的函数对象有:Object,Date等一系列的内置函数对象

函数对象:

所有的函数对象中都有一个名字叫prototype的引用类型变量,该引用类型变量是函数对象的成员,该引用类型变量的值是对应的原型对象的引用值,即我们平常所说的prototype指向原型对象

(一个对象中如果有prototype,则该对象一定是函数对象,如果对象是函数对象,则其中一定有prototype)

原型对象:

所有的原型对象中都有一个名为constructor引用类型变量,该引用类型变量是原型对象的成员,该引用类型变量的值是对应的函数对象的引用值,即我们平常所说的constructor指向函数对象

(一个对象中如果有constructor,则该对象一定是原型对象,如果对象是原型对象,则其中一定有constructor)

实例对象

    实例对象是被对应的函数对象创建的

所有对象中都有一个名为__proto__引用类型变量,该引用类型变量是对象的成员,该引用类型变量的值是创建它的对象的原型对象的引用值,即谁创建了这个对象,这个对象的__proto__就指向这个创建对象的原型对象(特殊的不算)

特殊的有

(1)Function函数对象中__proto__的值为原型对象的引用值(即__proto__指向Function原型对象,自己指向自己没有意义)

(2)Object原型对象中__proto__的值为null

 

 

 4、对象访问成员的过程:

(1)当前对象中如果有该成员就访问到该成员,访问结束

(2)当前对象中如果没有该成员,则到__proto__指向的对象中找成员,找到结束,如果还是没有找到,又通过__proto__指向的对象中去找 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪与

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值