Javascript中的prototype以及__proto__的理解

在了解prototype以及proto之前,先来明确明确几个基本概念。

1.构造函数 :即通过new关键字创建的特定类型的对象的函数,例如:

//创建构造函数 通常开头是大写,与普通函数区分
function Person(name,age){
......
}
//使用new,生成实例
//var person1=new Person(){
........
}


2.原型对象:在Js中,Function(方法)也是一个对象,Function.prototype指向一个空object,即原型对象,原型对象在定义函数时同时被创建,作用是任何实例都共享原型对象中声明的属性和方法。

function Person (){

}
//原型对象中声明属性和方法
person.prototype.name="Atu"
person.prototype.showname()=function(){
alert(this.name)
}
//实例共享其属性和方法
var person1=new Person();
person1.showname()// Atu

而原型对象又有一个constructor属性,他的作用是反过来指向函数本身,即:
console.log(Person.prototype.constructor===Person) //true


3.实例:person1是Person对象的实例,而person1这个对象具有属性proto,指向构造函数的原型对象

alert(person1.proto===Person.prototype) //true


总结:
1:在创建构造函数的同时也会产生原型对象,原型对象中声明的属性和方法会被构造函数所创建的实例共享。
2:每个实例对象的proto属性都指向构造函数的原型

                          `
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容