原型链

转自: 详谈JavaScript原型链 

1. 可用于动态给构造函数添加属性或方法

通过一个构造函数创建出来的多个实例,如果都要添加一个方法,给每个实例去添加并不是一个明智的选择。这时就该用上原型了。

在实例的原型上添加一个方法,这个原型的所有实例便都有了这个方法。

按照JS引擎的分析方式,在访问一个实例的属性的时候,现在实例本身中找,如果没找到就去它的原型中找,还没找到就再往上找,直到找到。这就是原型链。

2. 只有函数有prototype,对象是没有的。

但是函数也是有__proto__的,因为函数也是对象。函数的__proto__指向的是Function.prototype。

也就是说普通函数是Function这个构造函数的一个实例。

3. instance

instanceof是判断实例对象的__proto__和生成该实例的构造函数的prototype是不是引用的同一个地址。

是返回true,否返回false。

那怎么判断实例是由哪个构造函数生成的呢?这时候就要用到constructor了。

实例的原型的构造函数, obj.__proto__.constructor

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 为什么有的人尽享天时地利,有的人却吃遍各种苦头?为什么有些“坏人”过得那么好,而有些“善人”却过得不好?真的是老天...
    阳光Sunflower阅读 502评论 1 1
  • 2818.5.28.星期一,晴 离六、一儿童节越来越近了,孩子们的排练继续进行,今天下午也是到了7点多,只是辛苦了...
    贵荣阅读 247评论 0 0
  • 今天读到了著名作家汪曾祺的一本著作《一定要爱着什么》,在这本书的前两章,描述了花园中的种种景象,似乎花园中的一切在...
    似水流年1993阅读 1,127评论 0 2

友情链接更多精彩内容