DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript基礎知識 >> javascript面向對象與設計模式
javascript面向對象與設計模式
編輯:JavaScript基礎知識     
這一章通過一整節來慢慢引出了js中繼承的概念
ECMAScript支持面向對象OO編程,但js中並沒有類和接口這種概念。它實現面向對象只是通過對象
一、對象可以在代碼執行過程中創建和增強,因此具有動態性而非嚴格定義的實體。
在沒有類的情況下,可以采用下列模式創建對象:
1、工廠模式:創建對象通過簡單的函數,為對象添加屬性和方法,然後返回對象。這個模式後來被構造函數模式取代
2、構造函數模式:可以創建自定義引用類型,可以像創建內置對象實例一樣使用new操作符,
缺點:它的每個成員(包括函數)都沒有無法得到復用
特點:與對象具有松散耦合的特點,可以在多個對象間共享函數
3、原型模式(理解裡面函數之間的引用過程就可以理解繼承是怎麼來的了)
使用構造函數的prototype屬性來指定哪些應該共享的屬性和方法。
組合使用構造函數模式和原型模式時,使用構造函數定義實例屬性,而使用原型定義共享的屬性和方法
二、js主要通過原型鏈來實現繼承。
1、原型鏈的構建是通過將一個類型的實例賦值給另一個構造函數的原型實現的,這樣,子類型就能夠訪問超類型的所有屬性和方法
2、原型鏈的問題是對象實例共享所有繼承的屬性和方法,不適合單獨使用
3、如何解決2這個問題:利用構造函數,在子類型構造函數的內部調用超類型構造函數。這樣就可以做到每個實例都具有自己的屬性,還能保證只使用構造函數模式來定義類型。
4、使用最多的繼承模式是組合繼承,這種模式使用原型鏈繼承共享屬性和方法,而通過借用構造函數繼承實例屬性
此外,還存在下列可選擇的繼承模式:(這個部分暫時不是很明白)
1、原型式繼承:可以在不必預先定義構造函數的情況下實現繼承,其本質是執行對給定對象的淺復制。而復制的得到的副本還可以得到進一步的改造
2、寄生式繼承:與原型式繼承非常相似,也是基於某個對象或某些信息創建一個對象,然後增強對象,最後返回對象。為了解決組合繼承模式由於多次調用超類型構造函數而導致的低效率問題,可以將這種模式與組合繼承一起使用
3、寄生組合式繼承:實現基於類型繼承的最有效的方式
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved