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?、構造函數
          ??????
          ??
          ?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?????}

          ???兩種模式都類似于傳統意義面向對象語言中類的實現,當new一個對象時,每個對象都擁有自己的屬性,同時方法是函數的引用。所以所有的函數多只創建一次,而每個對象擁有自己對象屬性實例。
          posted on 2006-12-04 09:08 windfree 閱讀(452) 評論(0)  編輯  收藏 所屬分類: javascript
          主站蜘蛛池模板: 玛曲县| 宜春市| 青州市| 大安市| 固始县| 乐都县| 鞍山市| 开鲁县| 定兴县| 盐边县| 怀化市| 乐亭县| 惠水县| 通榆县| 蒙自县| 新巴尔虎左旗| 金华市| 瓮安县| 宝清县| 葵青区| 托克托县| 徐闻县| 尚义县| 汤原县| 广丰县| 信宜市| 邻水| 嘉峪关市| 苗栗市| 隆尧县| 乌什县| 襄垣县| 伊通| 阜康市| 龙里县| 招远市| 桦南县| 库尔勒市| 陇川县| 闽清县| 东丽区|