前端開發面試總結(六)

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.
相關文章
相關標籤/搜索