首页 > Web开发 > 详细

JS中的原型链

时间:2019-10-07 20:19:10      阅读:72      评论:0      收藏:0      [点我收藏+]

技术分享图片

技术分享图片

打印结果如下:

技术分享图片

每个实例原型最终都会指向Object原型,其根本是利用Object来创建实例

每次进行实例化new 一个对象时其实都是 new 一个 Object 对象,通过Object()构造器

获取Object原型来构建

如图所演示,var person = new Person()时 Person函数(类)会将Person.prototype

中存在的原型属性获取并传给person实例中的_proto_属性,而Person.prototype中 _proto_属

性里也有从上一个原型对象中继承下来的原型属性,这里的Person.prototype是通过Object()构

造函数将Object.prototype中的方法继承了下来(例如我们所属性的toString方法,其实是

Oject.prototye中定义的方法。)

 

实验验证:原型链传递属性或者方法

增加代码:

Person.prototype.run = function(){

  console.log(‘run‘)

打印结果如下:

技术分享图片

由此得出结论:通过原型链定义的方法,被传递至实例person的_proto_中

而想要调用run方法 => person.run() 这样即可,实际调用的是_proto_中的run方法

这与通过构造函数定义的方法不太一样呢?

下面是通过构造函数定义出来的voice方法

技术分享图片

JS中的原型链

原文:https://www.cnblogs.com/chujunqiao/p/11631904.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!