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 閱讀(456) 評論(0)  編輯  收藏 所屬分類: javascript
          主站蜘蛛池模板: 客服| 永济市| 吉安县| 黄梅县| 祁阳县| 东兰县| 关岭| 外汇| 怀宁县| 古蔺县| 宁蒗| 清涧县| 北安市| 壤塘县| 南郑县| 会理县| 宜兰县| 北辰区| 沾益县| 西华县| 淄博市| 滦南县| 临泽县| 新邵县| 来凤县| 富阳市| 屯门区| 韶关市| 玉龙| 南康市| 庄浪县| 泰来县| 策勒县| 巢湖市| 甘肃省| 巨鹿县| 盐城市| 四川省| 富蕴县| 运城市| 九台市|