__proto__与__prototype__

实例结构图

实例代码

function Parent(){
    this.neme = 'scl';
}
function Child(){
    Parent.call(this);
    this.age = '18';
}
Parent.prototype.getname = 'zld'
Child.prototype = Object.create(Parent.prototype);
Child.prototype.constructor = Child;
let kid = new Child();
let name = new Parent();

实例结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实例总结

  1. 构造函数,自动生成prototype对象,但是实例化对象没有。
  2. 实例对象可以通过__proto__查找到原型链上的原型对象。
  3. protype是在new一个实例对象时,构建__proto__对象的。
    (new的过程:
    ①先创建空对象,将构造函数的prototype赋给实例对象的__proto__;
    ②执行构造函数,更改this指向等;
    最后,若构造函数有返回值则返回规定对象,若无则为创建出来的新对象)
  4. __proto__是真正用来查找原型链对象的。
  5. Object对象的__proto__为null。
  6. 对于Object.create(),是将所接受的对象放加入到原型链中,并不会将所接收的对象中的属性和方法赋值到本身。
    如:
    (能获取到a.name是通过原型链上去查找的,而a本身为空)
    在这里插入图片描述

参考资料

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值