天天看點

Javascript 建立對象方法的總結

1. 使用Object構造函數來建立一個對象,下面代碼建立了一個person對象,并用兩種方式列印出了Name的屬性值。

  2. 使用對象字面量建立一個對象;不要奇怪person["5"],這裡是合法的;另外使用這種加括号的方式字段之間是可以有空格的如person["my age"].

  3. 使用工廠模式建立對象,傳回帶有屬性和方法的person對象。

  4. 使用自定義構造函數模式建立對象;這裡注意命名規範,作為構造函數的函數首字母要大寫,以差別其它函數。這種方式有個缺陷是sayName這個方法,它的每個執行個體都是指向不同的函數執行個體,而不是同一個。

  5. 使用原型模式建立對象;解決了方法4中提到的缺陷,使不同的對象的函數(如sayFriends)指向了同一個函數。但它本身也有缺陷,就是執行個體共享了引用類型friends,從下面的代碼執行結果可以看到,兩個執行個體的friends的值是一樣的,這可能不是我們所期望的。

  6. 組合使用原型模式和構造函數建立對象,解決了方法5中提到的缺陷,而且這也是使用最廣泛、認同度最高的建立對象的方法。

 7. 動态原型模式;這個模式的好處在于看起來更像傳統的面向對象程式設計,具有更好的封裝性,因為在構造函數裡完成了對原型建立。這也是一個推薦的建立對象的方法。

另外還有兩個建立對象的方法,寄生構造函數模式和穩妥構造函數模式。由于這兩個函數不是特别常用,這裡就不給出具體代碼了。

寫了這麼多建立對象的方法,其實真正推薦用的也就是方法6和方法7。當然在真正開發中要根據實際需要進行選擇,也許建立的對象根本不需要方法,也就沒必要一定要選擇它們了。

本文轉自    風雨蕭條 部落格,原文連結:   http://blog.51cto.com/1095221645/1865185     如需轉載請自行聯系原作者

<a href="http://blog.51cto.com/search/result?q=%E5%88%9B%E5%BB%BA%E5%AF%B9%E8%B1%A1%E6%96%B9%E6%B3%95" target="_blank">建立對象方法</a>

繼續閱讀