JavaScript類的設計模式
1、構造函數+原形(prototype)?????????
??????????
?1?//定義一個類class?
?2?function?class(sample,
){??//構造函數?
?3????someProperty=sample;
?4????//其他屬性
?5?}?
?6?
?7?//通過指定prototype對象來實現類的成員定義?
?8?class.prototype={?
?9???someMethod:function(){?
10?????//方法代碼?
11???},?
12???…//其他方法?
13?}?
?2?function?class(sample,

?3????someProperty=sample;
?4????//其他屬性
?5?}?
?6?
?7?//通過指定prototype對象來實現類的成員定義?
?8?class.prototype={?
?9???someMethod:function(){?
10?????//方法代碼?
11???},?
12???…//其他方法?
13?}?
2?、構造函數
??????
??
?1?function?class(sample,
){
?2?????????someProperty=sample;
?3?????????…//其他屬性
?4?????????//如果_init未定義,構造函數將用原形方式繼續定義對象的方法,_init設置為true
?5?????????//用來判斷是否給原形賦予了任何方法,
?6?????????//內部的函數只創建并賦值一次
?7?????????if(typeof?_init=="undefined"){
?8??????????????class.prototype={
?9??????????????????someMethod:function(){
10??????????????????????????//方法代碼?
11??????????????????????????????????},?
12???????????????????????…//其他方法???????????????
13?????????
14?????????}
15?????????_init=true;
16?????????};
17?????}

?2?????????someProperty=sample;
?3?????????…//其他屬性
?4?????????//如果_init未定義,構造函數將用原形方式繼續定義對象的方法,_init設置為true
?5?????????//用來判斷是否給原形賦予了任何方法,
?6?????????//內部的函數只創建并賦值一次
?7?????????if(typeof?_init=="undefined"){
?8??????????????class.prototype={
?9??????????????????someMethod:function(){
10??????????????????????????//方法代碼?
11??????????????????????????????????},?
12???????????????????????…//其他方法???????????????
13?????????
14?????????}
15?????????_init=true;
16?????????};
17?????}
???兩種模式都類似于傳統意義面向對象語言中類的實現,當new一個對象時,每個對象都擁有自己的屬性,同時方法是函數的引用。所以所有的函數多只創建一次,而每個對象擁有自己對象屬性實例。