談談JS中的原型


    不知道大家對JS中的原型理解的怎么樣,我想如果大家對JS中的原型對象以及prototype屬性十分熟悉的話對后面原型鏈以及繼承的理解會十分的容易,這里想和大家分享自己對其的理解,請先看下面這段代碼O(∩_∩)O~~

 

 1  function Person(){  2 }  3 Person.prototype.name = "jingzi";  4 Person.prototype.age = 20;  5 Person.prototype.sayName = function(){  6    alert(this.name);  7 };  8 
 9 var person1 = new Person(); 10 person1.sayName();    //"jingzi"

 

      這是利用原型模式創建的對象,代碼很短,不是很難理解,如果因為prototype存在疑惑,請向下繼續看

 

    大家請先忽略這張丑陋的圖解(。・_・。)ノ。這可是理解問題的關鍵奧~,步入正文。。。。

    每個函數被創建的時候都會有一個prototye屬性,這個屬性會指向函數的原型對象。默認情況下每個原型對象又都會獲取一個constructor屬性,這個屬性包含一個指向prototype屬性所在函數的指針。

   如上所示,創建了一個Person函數,它就會擁有一個prototype屬性,這個屬性指向了Person Prototype原型對象,而這個原型對象擁有一個constructor屬性,其指針指向了Person,即prototype屬性所在的函數Person.當你創建一個對象實例的時候,就會擁有一個prototype屬性(因為每個函數被創建的時候都會有一個prototype屬性呀\(^o^)/)。這個prototype屬性會指向其原型對象而不是直接指向其構造函數Person。

   這里需要記住實例對象是通過原型對象與構造函數取得聯系的。

   不知道這里你是否對原型對象有了一個初步的理解,不知道自己對其的理解是否正確,如果理解存在偏差,請大家狠狠地戳下面( ^_^ )。之后大家是不是會想什么是原型鏈呢?????嘿嘿,明天("明天")繼續。。。。

 


免責聲明!

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



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