面向对象--原型链

1. 什么是原型链

原型链 : 实例对象(a1)与原型(Aaa.prototype)之间的连接,叫做原型链

举个例子

Aaa.prototype.num = 10;
var a1 = new Aaa();
alert(a1.num);//10

上面的代码可以用下面图表示出来
这里写图片描述

接着看

function Aaa(){
    this.num = 20;
}
Aaa.prototype.num = 10;
var a1 = new Aaa();
alert(a1.num);//20

为什么这次弹出来是20而不是10呢,我们可以简单的记忆一下,将这种的(Aaa.prototype.)看成是class,另外一种(function Aaa)看成是style,因为style的优先级比class高,所以结果是20。具体原理如下图,因为是逐层往下找,先找到20。

这里写图片描述

原型链的最外层 : Object.prototype

看如下代码

function Aaa(){
    //this.num = 20;
}
//Aaa.prototype.num = 10;
Object.prototype.num = 30;
var a1 = new Aaa();
alert(a1.num);//30

原理如下图所示
这里写图片描述

图略丑,凑活着看,^_^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值