js之- 构造函数,原型,new的实现,原型链

构造函数

定义: 和普通函数没区别,为了区分功能两者功能,通过new关键字来调用的函数,称为构造函数,首字母常习惯大写

功能: 构造函数主要用于初始化对象

在这里插入图片描述在这里插入图片描述

原型

定义:

  1. 构造函数中都默认有prototype原型对象,包含两个属性:constructor和_proto_
  2. constructor属性指向的prototype所在构造函数本身
  3. _proto_属性指向上一个原型的prototype原型

在这里插入图片描述
在这里插入图片描述
为什么实例化的_proto_ 与 构造函数的prototype相等?主要在new操作符的实现过程

new操作符的实现

new操作符实例化出来的,默认含有_proto_,指向构造函数的prototype
由下图51行可以看到,通过给实例化对象添加_proto赋值构造函数的prototype,所以可以解释上面 ‘原型-定义中的第3条’,实例化的_proto_ === 构造函数的prototype

在这里插入图片描述

原型链

定义: 每个对象都有原型对象,通过_proto_指针指向上一个原型,并从中继承方法和属性,同时原型对象也可能拥有原型,这样一层一层,最终指向 null

先看代码:
在这里插入图片描述
在这里插入图片描述
综合上面的知识可知原型链的顺序为:

  1. 首先通过new操作符,实例化构造函数,实例中含有_proto_属性(等于上一个构造函数Person2的prototype)
  2. 再通过Person2的_proto_指向上一层Object的prototype
  3. Object.proto 为null

图片:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值