原型和原型链

2017-05-07  本文已影响0人  馋中解禅

1.静态变量和函数

2.原型

  1. 每个对象都有一个内部属性prototype,我们称之为原型。
  2. 原型的值可以是一个对象,也可以是null。
  3. 如果它的值是一个对象,则这个对象也有自己的原型,于是形成了原型链。
  4. 使用原型的好处是可以让对象实例共享它所包含的属性和方法。
  5. 当调用构造函数创建一个实例的时候,实例内部将包含一个内部指针(_proto_)指向构造函数的prototype。
  6. Function是一个函数对象,但它有点特殊,它的原型就是一个function空函数。
  7. Array也是一个函数对象,它的原型就是Array.prototype。

3.原型链

4.constructor

5._proto_属性和prototype属性的区别

  1. prototype是function对象中专有的属性。
  2. _proto_是普通对象的隐式属性,在new的时候,会指向prototype所指的对象。
  3. _ptoto_实际上是某个实体对象的属性,而prototype则是属于构造函数的属性。

6.总结

  1. 所有的对象都有_proto_属性,该属性对应该对象的原型。
  2. 所有的函数对象都有prototype属性,该属性的值会被赋值给该函数创建的对象的_proto_属性。
  3. 所有的原型对象都有constructor属性,指向该原型的实例构造函数。
  4. 函数对象和原型对象通过prototype和constructor属性进行相互关联。
  5. 函数都继承于Function函数,对象都继承于Object对象。
  6. 函数Function也是对象Object,Object也有自己的构造函数Function,所以Function和Object是互相创造的。
  7. 原型链的形成是真正是靠_proto_ 而非prototype。
上一篇 下一篇

猜你喜欢

热点阅读