1. 程式人生 > >js對象體系總結

js對象體系總結

屬性 技術分享 所有 _proto_ function 。。 區分 創建 con

  廢話不多說,拋圖一張。。。

技術分享

  總結:  

  1. 所有的函數都有prototype屬性。
  2. prototype屬性本質上也是對象(實際上是Object的實例對象{ })----原型對象中也有一個__proto__屬性,並且指向Object.prototype,但是Object.prototype中沒有該屬性。
  3. 原型對象中默認會有一個constructor屬性,該屬性指向原型所屬的構造函數。
  4. 所有的函數都是Function的實例。
  5. Function也是自己的實例。
  6. 所有的實例對象中都有一個__proto__屬性,該屬性指向創建該實例對象的構造函數的原型。
  7. __proto__屬性不可以在編程中使用,該屬性不是標準,只是瀏覽器自己內部使用。
雖然所有的函數中都有prototype和__proto__屬性,但是這兩個屬性不是在所有的情況下都有用: prototype只有在實例化之後才有價值 new Foo() __proto__只有作為普通函數才有價值 foo.call() 實例對象中也有__proto__,主要和函數中的__proto__做好區分

js對象體系總結