如果大家對JS中的原型物件以及prototype屬性十分熟悉的話對後面原型鏈以及繼承的理解會十分的容易,這裡想和大家分享自己對其的理解,
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。
這裡要記住實例物件是透過原型物件與建構函數取得連結的。
相關推薦:
JS原型詳解說明
關於js原型鏈的7篇文章推薦
淺談JS原型物件與原型鏈_javascript技巧
以上是js原型詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!