JAVA & XML & JAVASCRIPT & AJAX & CSS

          Web 2.0 技術(shù)儲備............

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

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

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

          ?function T(name) {
          ??? this.Name = name;
          ??? var x = 5;
          ????
          ??? function privateFunc() {
          ??????? alert('in private method: do sometheing');
          ??? }
          ????
          ??? this.PublicFunc = function() {
          ??????? // 可以調(diào)用私有方法,訪問私有成員變量。
          ??????? 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 擴展的方法里無法調(diào)用對象的私有方法,也訪問不到通過 var 定義的私有成員。
          ??? // alert(x);
          ??? // privateFunc();
          }
          ?
          var t2 = new T('t2');
          t2.PublicFunc();
          t2.PublicFunc2();

          posted on 2006-03-20 09:42 Web 2.0 技術(shù)資源 閱讀(536) 評論(0)  編輯  收藏 所屬分類: Javascript
          主站蜘蛛池模板: 花垣县| 车致| 阿鲁科尔沁旗| 乌兰察布市| 上栗县| 临海市| 固原市| 浦城县| 吴堡县| 沧州市| 九台市| 松阳县| 永顺县| 施秉县| 三穗县| 柳州市| 唐河县| 陕西省| 蓬溪县| 米易县| 顺昌县| 高邑县| 玉屏| 株洲市| 永泰县| 逊克县| 晋州市| 安宁市| 绥中县| 新龙县| 稷山县| 永城市| 探索| 四会市| 喀什市| 临猗县| 连江县| 红安县| 庄浪县| 金华市| 南通市|