原型和原型链

原型链

原型链:实例对象与原型之间的连接,叫做原型链

function Human(){
    this.name;
}
Human.prototype.age = 22;

var a = new Human();
console.log(a.age)

这里的age挂载到了Human的原型上面了。其实原型就是一个对象。a为什么能找到原型上面的对象呢?

这里实例对象就是a
原型就是Human.prototype
他们之间的链接就是原型链


function Human(){
    this.age = 20;
}
Human.prototype.age = 22;

var a = new Human();

a.age = 10

console.log(a.age) // 10

这里面就可以将Human.prototype.age = 22; 这个类比成css里面的class的权重
this.age = 20;这个类比成css里ID的权重

a.age = 10 这个当然就是内联元素权重最高,它会替换上面的this.age的值,因为this也就是a。所以最后的结果就是10

其实本质上是a先会在自己的prototype属性上查找有没有 你需要的属性,如果没有的话就在查找原型链上的。所以a.age是a上面的属性所以它的权重是最高的

原型链的查找是从内层一层一层往外查找

并且原型链的最外层其实是 :Object.prototype

function Human(){
//  this.age = 20;
}
//Human.prototype.age = 22;
Object.prototype.age = 30;

var a = new Human();


console.log(a.age)
console.log(a)//30 这个例子证明原型链的最终是Object.prototype
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值