JS高级---原型链最终的指向是Object的prototype, 而Object中的__proto__是null

本文解析JavaScript原型链的运作机制,重点讲解原型链的终点是Object.prototype,以及原型链中__proto__属性的指向。通过实例演示了原型方法的添加和实例对象与原型之间的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jane_panyiyun

每临大事有静气,不信今时无古贤

随笔 - 395  文章 - 0  评论 - 39  阅读 - 13万

JS高级---原型链最终的指向是Object的prototype, 而Object中的__proto__是null

 原型链最终的指向

  1. 原型链最终的指向是Object的prototype, 而Object中的__proto__是null
  2. 如果原型指向改变了, 那么就应该在原型改变指向之后添加原型方法

复制代码

    function Person() {

    }
    Person.prototype.eat = function () {
      console.log("吃东西");
    };

    var per = new Person();
    console.dir(per);
    console.dir(Person);

    //实例对象中有__proto__原型
    //构造函数中有prototype原型
    //prototype是对象
    //所以,prototype这个对象中也有__proto__,那么指向了哪里
    //实例对象中的__proto__指向的是构造函数的prototype
    //所以,prototype这个对象中__proto__指向的应该是某个构造函数的原型prototype

    //Person的prototype中的__proto__的指向
    //console.log(Person.prototype.__proto__);

    //per实例对象的__proto__------->Person.prototype的__proto__---->Object.prototype的__proto__是null

    console.log(per.__proto__ == Person.prototype); //true
    console.log(per.__proto__.__proto__ == Person.prototype.__proto__); //true 
    console.log(Person.prototype.__proto__ == Object.prototype); //true 
    console.log(Object.prototype.__proto__); //null

复制代码

你好,我是Jane,如果万幸对您有用,请帮忙点下推荐,谢谢啦~另外,咱们闪存见哦~

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值