原型

原型

prototype

概述:prototype是属于函数的一个空间,他是一个对象,因为构造函数也是函数所以它也具备.而这个prototype属性我们成为显式原型.

函数的prototype

dUI应这个prototype显示是一个对象,里面具备对应的属性及方法.主要为方法.那么就是说这个prototype属性上一半存放对应的方法

构造函数的prototype

从上可得构造函数的prototype是一个对象,第二个里面有个属性constructor指向当前的构造函数

实例对象访问对于的prototype上的内容可以通过实例对象.属性名访问

一般将对应的函数存储在对应的prototype上(这个函数只会声明一次),将函数存储在原型上,讲属性放在构造函数里面.

在prototype里面声明的函数的this指向当前的调用的实例对象

__proto__

概述:他是一个隐式的原型,他是一个属于对象的空间,每个对象都存在这个空间,那么对面的实例对象也是一个对象,所以他也有这个空间,这个空间指向对应的构造函数的prototype.

__proto__的指向问题

__proto__指向对应的构造函数的prototype

构造函数也是一个对象,那么他的__proto__指向谁,指向对应的父类构造函数的prototype

Object的__proto__指向null.


原型链

概述:

对象在 __proto__ 上找属性的链式结构被称为原型链。

从上面的指向问题来看 对象在原型上找属性的过程为

先找自己的 __proto__ (对应的构造函数的prototype),

再找对应的自身构造函数的原型的 __proto__ 找到父类构造函数的原型

型的 __proto__ ,直到找到object为止

Object的原型的 __proto__ (null)上还找不到返回undefined


注意事项

原型链不包含对象赋值

对象赋值的操作是找到这个属性了重新设置值

没有找到这个属性进行 添加这个属性进行赋值操作

总结

构造函数的原型prototype

实例对象的原型 __proto__

实例对象的 __proto__ 指向构造函数的prototype

原型链通过对应的对象的 __proto__ 去找对应的属性 直到找到Object为止

原型一般上面写函数,可以保证函数只声明一次。对应的属性写在构造函数内。

原型上的方法/属性。通过实例对象.属性名直接访问(平常通过对象去点的方法都称为原型方法)

在对应的原型上的函数里面的this指向当前调用的实例对象

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

推荐阅读更多精彩内容