什么是Js原型?(1)(包括作用:繼承)


學習目標:
    認識什么js是原型,原型、構成函數、實例對象關系;原型應用范圍。

什么是原型
    函數有原型,函數有一個屬性叫prototype,函數的這個原型指向一個對象,這個對象叫原型對象。這個原型對象有一個constructor屬性,指向這個函數本身。

    實例對象也存在原型,實例對象存在原型對象是__proto__,__proto__一般被叫隱身原型,這個隱身原型有一個constructor屬性,該屬性指向創建該實例的構造函數。


構造函數、實例對象和原型直接關系
構造函數和實例對象關系
     在每一個實例對象中的__proto__中同時有一個 constructor 屬性,該屬性指向創建該實例的構造函數:

 

實例對象__proto__和構造函數prototype關系
     在每一個實例對象中的__proto__指向構造函數中prototype 兩個是相等的。

 

構造函數,prototype原型對象,實例對象,proto,constructor,直接關系

原型作用

  • 原型作用之一:數據共享,節省內存空間
  • 原型作用之二:為了實現繼承


原型如何數據共享,節約內存空間
      JavaScript 面向對象編程

 

原型如何實現繼承
比如,現在有一個"動物"對象的構造函數。


還有一個"貓"對象的構造函數。


怎樣才能使"貓"繼承"動物"呢?
     如果"貓"的prototype對象,指向一個Animal的實例,那么所有"貓"的實例,就能繼承Animal了。

 

 

       cat1實例對象與構造函數關系圖如下


  
       任何一個prototype對象都有一個constructor屬性,指向它的構造函數。
       添加 Cat.prototype = new Animal();代碼以后
       Cat.prototype.constructor指向Animal。

 

cat1實例對象與構造函數關系圖如下

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM