首頁  >  文章  >  web前端  >  Js建立物件額幾種方式

Js建立物件額幾種方式

大家讲道理
大家讲道理原創
2017-04-11 14:05:211431瀏覽

第一種模式:工廠方式

#說明:
1.在函數#在##中定義物件,並定義物件的各種屬性,,雖然屬性可以為方法,但是建議將屬性為方法的屬性定義到函數之外,這樣可以避免重複建立該方法2.
引用該物件的時候,這裡使用的是var x = Parent()而不是var x = new Parent();因為後者會可能出現很多問題(前者也成為工廠經典方式,後者稱之為混合工廠方式),不推薦使用new的方式使用該物件3.在函數的最後返回該物件
4.不推薦使用這種方式
建立物件,但應該了解。

缺點:①無法確定物件的型別(因為都是

Object)。

   ②所建立的多個物件之間沒有關聯。

第二個模式:建構子方式

說明:

1.與工廠方式相比,使用建構函數方式創建對象,無需再函數內部重建創建對象,而使用this指代,並而函數無需明確
return 2.同
工廠模式一樣,雖然屬性的值可以為方法,扔建議將該方法定義在函數之外3..同樣的,不推薦使用這種方式創建對象,但仍需要了解。

缺點:①多個實例重複建立方法,無法共用。

   ②多個實例皆不是同一個Function的實例。

第三種模式:原型模式

 

說明:

1.函數中不對屬性進行定義
2.利用prototype屬性對屬性進行定義
3.同樣的,不建議使用這樣方式建立物件

缺點:①無法傳入參數,無法初始化屬性值。

   ②如果包含引用類型的值時,改變其中一個實例的值,則會在所有實例中體現。

第四種模式:混合的建構函數,原型方式(建議)

 

說明:

1.此模式是指混合搭配使用建構函式方式和原型方式

2.將所有屬性不是方法的屬性定義在函式中(建構函式方式)
將所有屬性值為方法的屬性利用prototype在函數之外定義(原型方式)
3.建議使用這樣方式建立物件

優點:建構子共享實例屬性,原型共享方法和想要共享的屬性。可傳遞參數,初始化屬性值。

第五種模式:動態原型方式

 

#說明:
1.動態原型方式可以理解為混合建構函數,原型方式的一個特例
2.該模式中,屬性為方法的屬性直接在函數中進行了定義,但是因為

 

從而保證創建該物件的實例時,屬性的方法不會被重複建立

3.推薦使用這種模式。

 

附:

JS中多種方式建立物件詳解

##

#

以上是Js建立物件額幾種方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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