原型与原型链、作用域与作用域链的复习

原型与原型链

基础知识复习

每个对象都有自己的原型对象,而原型对象本身,也有自己的原型对象,从而形成了一条原型链条

当试图访问一个对象的属性时,它不仅仅在该对象上搜寻,还会搜寻该对象的原型,以及该对象的原型的原型,依次层层向上搜索,直到找到一个名字匹配的属性或到达原型链的末尾。

对JS中原型与原型对象的理解?(美团)

  • 每个对象都有自己的原型对象,原型对象也有自己的原型对象

  • 构造函数的原型对象指向一个对象,该对象是构造函数实例对象的原型对象

  • 该原型对象的constructor属性指向构造函数本身

对一个构造函数实例化后,它的原型链指向什么?

  • 指向该构造函数实例对象的原型对象

  • 实例对象可以通过_proto_属性访问到该对象

  • 构造函数可以通过prototype属性访问到该对象

所有的构造函数,无论是自定义的还是内置的,它们的原型对象都是同一个对象。

如果你还想继续往下深究,那么上面的图可以扩展成这样:

可以看到,在上面的代码中,我们顺着原型链一层一层往上找,最终到达了 null

但是目前来看我们这个图还是不完整,既然构造函数的原型对象也是对象,那么必然该对象也有自己的原型,所以完整的图其实如下:

面试题

  1. 原型与原型链(美团2019、字节)(33、51、76)

  1. 一个构造函数实例化后,它的原型链指向什么?(78)

  1. prototype和_proto_的区别是什么?(143)

作用域与作用域链

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值