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 技术资源 阅读(511) 评论(0)  编辑  收藏 所属分类: Javascript

只有注册用户登录后才能发表评论。


网站导航: