首頁 >web前端 >js教程 >javascript自訂物件建構的方式實例詳解

javascript自訂物件建構的方式實例詳解

伊谢尔伦
伊谢尔伦原創
2017-07-27 10:26:271195瀏覽

建立高階物件建構有兩種方式:使用「this」關鍵字建構、使用原型prototype建構。如: 

//使用this关键字定义构造的上下文属性 
function Girl() 
{ 
this.name = "big pig"; 
this.age = 20; 
this.standing; 
this.bust; 
this.waist; 
this.hip; 
} 
//使用prototype 
function Girl(){} 
Girl.prototype.name = "big pig"; 
Girl.prototype.age = 20; 
Girl.prototype.standing; 
Girl.prototype.bust; 
Girl.prototype.waist; 
Girl.prototype.hip; 
alert(new Girl().name);

上例中的兩個定義本質上沒有差別,都是定義「Girl」物件的屬性資訊。 「this」與「prototype」的差異主要在於屬性存取的順序。如: 

function Test() 
{ 
this.text = function() 
{ 
alert("defined by this"); 
} 
} 
Test.prototype.test = function() 
{ 
alert("defined by prototype"); 
} 
var _o = new Test(); 
_o.test();//输出“defined by this”

當存取物件的屬性或方法是,將依照搜尋原型鏈prototype chain的規則進行。首先尋找自身的靜態屬性、方法,繼而找出建構上下文的可存取屬性、方法,最後找出建構的原型鏈。 

「this」與「prototype」定義的另一個不同點是屬性的佔用空間不同。使用「this」關鍵字,範例初始化時為每個實例開闢建構方法所包含的所有屬性、方法所需的空間,而使用「prototype」定義,由於「prototype」實際上是指向父級的一種引用,只是個資料的副本,因此在初始化及儲存上都比「this」節約資源。

以上是javascript自訂物件建構的方式實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn