08 js 什么是原型链

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        function Person(name, age) {
            this.name = name
            this.age = age
            this.sayHi = function () {
                console.log('hello')
            }
        }
        let p1 = new Person()
        console.log(p1)

        //  _proto_又指向哪里呢
        // 实例对象 是由构造函数new出来的
        // 那么这个实例对象上的_proto_就指向这个构造函数的prototype
        // 我们发现实例对象的_proto_和构造函数的prototype是同一个对象空间
        // 所以,我们可以通过构造函数的函数名来向prototype添加内容
        // 实例对象访问自己的属性时,自己身上有就直接用,没有的话自动去自己身上的_proto_上找
        // 那么对象就可以使用函数的prototype里面的内容了

        // 我们的原型有个链状结构
        // 当一个对象我们不知道是谁都结构的时候,我们可以把他看成是object的实例对象
        // 也就是说,我们构造函数的prototype的_proto_指向object.prototype
        // 那么这个object.prototype也是一个对象,他的_proto_最终指向js的null
        // 因为我们的object是js的顶级构造函数,我们js万物皆对象
        // 所以object.prototype就到头了

        // 原型链:从实例对象开始沿着_proto_形成的链式结构就是这个实例对象的原型链
    </script>
</body>

</html>

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值