asfman
android developer
posts - 90,  comments - 213,  trackbacks - 0

利用 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-04-03 14:34 汪杰 阅读(160) 评论(0)  编辑 收藏 引用 所属分类: hengxing网站jsjavascript
只有注册用户登录后才能发表评论。

<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿(15)

随笔分类(1)

随笔档案(90)

文章分类(727)

文章档案(712)

相册

收藏夹

http://blog.csdn.net/prodigynonsense

友情链接

最新随笔

搜索

  •  

积分与排名

  • 积分 - 467659
  • 排名 - 6

最新随笔

最新评论

阅读排行榜

评论排行榜