原型与原型链,什么是原型,原型与原型链的区别,什么是原型链?

原型与原型链:

  1. 原型prototype 原型是函数特有的,常规的数组和对象是没有原型的
  2. 原型链_proto_谷歌浏览器中呈现是[[prototype]] 原型链是大家都有的

function Person(){

}
Person.prototype.name="周一"
Person.prototype.age=1212
Person.prototype.getAge=function(){
	console.log(this.age)//打印年龄
}
//通过new 关键字实例化当前函数
let person1 =new Person()//person1-----就是当前的实例
 person1.getAge()//------>1212
 person1.age = 0
 person1.getAge()//------->0


//这时候再调用 getAge 打印出来的则是0

在这里插入图片描述

是因为当前 的实例属性上面已经有了age属性,他就不会再去原型链里找age属性了,就好比你自己现在需要一个苹果,但是自己已经有了,还去要别人的干嘛
就近原则不是指代码挨得近,而是去当前实例属性去查找,如果找到了就返回,否则顺着原型链一层一层往上找 ,直到找到null为止,找不到属性就会报undefined,找不到方法就会报not a function
原型链的查找机制如下图
在这里插入图片描述

···

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值