JS 原型及原型链

JS的原型及原型链的讲解,网上很多。这里自己也记录一下。

JS的重要核心概念:万物皆对象。

对象主要是两个: Object Function

一、JS对象的原型

1、 函数对象:

  function Foo(){
      this.type = 'foot';
   }

JS 的每一个函数对象都有一个 prototype 属性,这个prototype指向一个Object实例。

函数对象.png

笔记:
1、function 也是一个对象
2、function 有一个prototype 属性
3、prototype属性指向的是一个实例对象,这个对象包含两个属性 constructor和 _ proto _

2、普通实例对象

普通对象.png

普通对象的在内存里面有两个属性:
a、type 继承而来
b、__ proto_ 这个是属性,这个属性指向一个实例对象,这个对象包含两个属性constructor和 proto

二、原型链

上面的例子中的foo.proto和Foo.prototype指向的是同一个对象。

!原型链.png](http://upload-images.jianshu.io/upload_images/1139953-8a3f49263e52e136.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

注意:
foo.__proto 指向的是另外一个存在的实例对象
Foo.prototype 指向的也是一个存在的实例对象

原型链及继承关系.png

JS的继承总是有一个第三方对象的存在。 这个对象的名字叫 Foo.prototype, 是一个对象。

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

推荐阅读更多精彩内容