【无标题】原型原型链

文章详细阐述了JavaScript中的原型属性和原型对象的概念,指出如何通过prototype和__proto__来实现对象间的继承。构造函数的prototype属性与实例对象的__proto__指向同一对象,构建了一条从实例到构造函数,再到Object.prototype,最终到null的原型链。这种方式允许共享属性和方法,提高代码效率。
摘要由CSDN通过智能技术生成
每一个函数都有一个prototype属性,指向原型对象,

prototype (原型对象)的所有属性和方法,都会被构造函数的实例对象所继承。

因此,我们可以把那些公用的(不变的)的属性和方法,定义在原型对象(prototype)上 。

构造函数 prototype 属性指向与 构造函数实例所创建的对象 的__proto__属性指向的是同一个对象。

原型对象可以向所有实例对象共享他的属性和方法,因此,不用在构造函数中定义对象信息,而是可以直接将这些信息添加到原型中。
  let arr = []
  console.log('arr.__proto__', arr.__proto__);  // Array.prototype

  console.log('arr.__proto__ === Array.prototype', arr.__proto__ === Array.prototype);  // true

  console.log('arr.__proto__.__proto__',arr.__proto__.__proto__); // Object.prototype

  console.log('arr.__proto__.__proto__ === Object.prototype',arr.__proto__.__proto__ === Object.prototype); // true

  __proto__      =>      __proto__       =>        __proto__       =>    null
     []               Array.prototype          Object.prototype
  
    [] instanceof Array; // true
    {} instanceof Object;// true

从 instanceof 能够判断出 [ ].__proto__  指向 Array.prototype,

而 Array.prototype.__proto__ 又指向了Object.prototype,

最终 Object.prototype.__proto__ 指向了null,标志着原型链的结束。
    
****因此,[]、Array、Object 就在内部形成了一条原型链

我的博客:https://karlfranz.cn/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值