关于原型与原型链的一些理解
原型
原型全程就是原型对象,
任何的一个函数对象都有一个属性叫做显示原型,即protype
非函数式对象一定会有一个隐式原型对象 ,
proto,
对于函数对象来讲我的new实例出来的对象中隐士原型对象必然和自己父级的原型对象的指向是一致的。
例如
function Person(name,age,gender){
this.name=name
this.age=age
this.gender=gender;
}
Person.protype.play=function(){
console.log(11)
}
但我们为啥要吧方法放在原型上呢,而不是在对象,
答案便就是这样的话我们可以节约很大一部分内存,要是在对象中的话,我一个对象,要创建两个空间。
原型的优点
可以共享资源,节约内存。
原型链
原型链简单地来说便就是程序在执行过程中查找对象的属性的过程。
对于原型链中的关系我们可以这么理解为
父函数对象的原型指向也就是子的隐式原型对象。
new这个过程中干了什么
首先的话。会开辟空间,这个空间就是我们要实例化的对象
2:改变this的指向问题,一开始的话指向window,将他改为我实例化的对象
3:执行函数
这个过程中我们主要向内存空间中添加对象的属性。
4:还有的话,就是给对象添加__proto__
5:返回this指向,就是返回我实例化的对象的空间地址。