JS原型链的理解

显式原型和隐式原型:

● prototype是原型对象(显式原型)
● __ proto__是对象原型(隐式原型)

我自己的理解他么区分是:一个开辟的空间的对象(prototype)是具现的为显式, 一个是指针(__ proto__ )只起牵引作用为隐式

代码体验:

var person = {}
person.name = '安'
person.age = 23
console.log(person.__ proto__ === Object.prototype) // true 

发现问题: person.__ proto__指向Object.prototype, 所以__ proto__属性是起指针作用

图解:
请添加图片描述

拓展理解:

● 构造函数才有prototype(原型对象)
● 有prototype的才是构造函数,所以箭头函数不能用来当构造函数
● Object是最大的父类, 下面有很多子类(Function,Array,String…)
● class可以理解成一个Function,它的底层就是Function.prototype挂载,详细点的话可以看手写一个class相关文章

提问:

  1. Foo.prototype = {name:“安”,age:23} new Foo()实例的__ proto__还是指向Function吗?
    解:

请添加图片描述

  1. 什么是原型链?(面试题)
    思路:
    ● 原型对象和对象原型是什么
    ● 举一个原型链的例子
    解:
    a. prototype是原型对象(显式原型);__ proto__是对象原型(隐式原型)。
    b. 举个简单的例子普通的function的原型链
    ■ function.prototype 的 __ proto __ 指向 Function.prototype
    ■ Function.prototype 的 __ proto __ 指向 Object.prototype
    ■ Object.prototype 的 __ proto __ 最终指向指向 null

这边有qq群号欢迎交流: 623354172

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

影风莫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值