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 技術資源 閱讀(538) 評論(0)  編輯  收藏 所屬分類: Javascript
          主站蜘蛛池模板: 阳信县| 商南县| 温宿县| 罗定市| 南雄市| 太湖县| 武清区| 京山县| 六安市| 剑阁县| 亚东县| 新竹县| 安化县| 宽城| 同心县| 四子王旗| 龙川县| 临潭县| 奇台县| 巩留县| 永仁县| 西华县| 鄂托克前旗| 漾濞| 开平市| 辽中县| 房产| 富民县| 汶上县| 灵璧县| 那曲县| 南康市| 东光县| 龙里县| 孟连| 海伦市| 平武县| 黔南| 凌源市| 六安市| 赤壁市|