前端开发面试总结(六)

prototype和__proto__的区别和联系

重点函数

  • 一、每个对象都有一个__proto__属性,包括函数也是对象,也有__proto__属性。
  • 二、每个构造函数都有一个prototype方法。
  • 三、每一个对象的__proto__属性都指向自身构造函数的prototype。(obj.__proto__等于function.prototype)
一、概念

protoprototype

  • 对象特有
  • 该属性指向对象自己的构造函数的prototype
  • 因此对象能够从prototype中继承属性和方法

prototypecode

  • 该属性是函数特有
  • 该属性能够用于存储须要被共享的属性和方法

constructor对象

  • 函数特有,定义在prototype里面
  • 使用new建立实例的时候,实例会继承prototype中的属性和方法
二、既是函数也是对象

Object:既是对象,也是构造函数继承

  • 做为对象:Object.__proto__ === Function.prototype
  • 做为函数:Object.prototype是原型链的顶端,Object.prototype.__proto__ === null

Function:既是对象,也是构造函数原型链

  • 做为对象:Function.__proto__ === Function.prototype
  • 做为函数:Function.prototype的函数和属性能够被实例共享,Function.prototype.__proto__ === Function.
相关文章
相关标签/搜索