JAVA & XML & JAVASCRIPT & AJAX & CSS

          Web 2.0 技術儲備............

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            77 隨筆 :: 17 文章 :: 116 評論 :: 0 Trackbacks

          http://www.bjcan.com/hengxing/readlou.asp?id=1236

          利用 this 實現的公共方法中可以訪問類的私有成員(用 var 聲明的變量),私有方法(用 function 直接定義的方法);
          利用原型擴展實現的方法中,無法調用私有成員和變量。
          例子如下所示(把其中注釋掉的兩行恢復就可以看到區別):

          ?function T(name) {
          ??? this.Name = name;
          ??? var x = 5;
          ????
          ??? function privateFunc() {
          ??????? alert('in private method: do sometheing');
          ??? }
          ????
          ??? this.PublicFunc = function() {
          ??????? // 可以調用私有方法,訪問私有成員變量。
          ??????? privateFunc();
          ??????? alert('x = ' + x);
          ??????? alert('in public method: do something else.');
          ??? }
          }
          ?
          //var t = new T('t1');
          //t.PublicFunc();
          ?
          T.prototype.PublicFunc2 = function() {
          ??? alert('in public method 2.');
          ??? // 下面兩行都會出錯。在利用 prototype 擴展的方法里無法調用對象的私有方法,也訪問不到通過 var 定義的私有成員。
          ??? // alert(x);
          ??? // privateFunc();
          }
          ?
          var t2 = new T('t2');
          t2.PublicFunc();
          t2.PublicFunc2();

          posted on 2006-03-20 09:42 Web 2.0 技術資源 閱讀(530) 評論(0)  編輯  收藏 所屬分類: Javascript
          主站蜘蛛池模板: 宁陕县| 阜南县| 宜阳县| 荔波县| 厦门市| 张家川| 沙洋县| 汾阳市| 临朐县| 崇明县| 吴桥县| 青海省| 邛崃市| 临沂市| 铜鼓县| 望都县| 兰州市| 浠水县| 陵川县| 大足县| 台安县| 儋州市| 军事| 宿州市| 兴义市| 扶余县| 湘潭市| 黎城县| 玉环县| 雅江县| 德令哈市| 庆安县| 乐陵市| 西充县| 秦皇岛市| 建宁县| 五原县| 昔阳县| 芷江| 施甸县| 嘉祥县|