JavaScript中的公有成员,私有成员和静态成员

JavaScript中的公有成员,私有成员和静态成员

私有成员就是在类的内部实现中可以共享的成员。但是并不对外公开,JavaScript中并没有特殊的机制来定义私有成员,但是可以用一些技巧来实现这个功能。主要是通过变量的作用域性质来实现的,在一个函数内部定义的变量称为局部变量,该变量不能被函数外的程序所访问,可以被函数内部定义的嵌套函数所访问。

在类的构造函数中可以为类添加成员,通过这种方式定义的成员,实际上共享了在构造函数内部定义的局部变量,这些变量就可以看作是类的私有成员。如:

实现私有成员
<script>

function class1(){

var pp="this is a private property"; //私有属性成员pp

function pm(){ //私有方法成员pm,显示pp的值

      alert(pp);
}

      this.method1=function(){ //在公有成员中改变私有属性的值

      pp="pp has been changed";
}

this.method2=function(){ //在公有成员中调用私有方法

      pm();

}

}

var obj1 = new class1();

obj1.method1();

obj1.method2();

</script>

注意:

局部变量(私有成员)被所有在构造函数中定义的公有方法所共享,而且仅被在构造函数中定义的公有方法所共享,这意味着,在prototype中定义的类成员不能访问在构造器中定义的局部变量。


实现静态成员:

和私有成员勉强相比,静态成员就要正统的多了,静态成员就是属于一个类的成员,如:

function class1(){

}

class1.staticProperty="sample";

class1.staticMethod=function(){

         alert(class1.staticProerty);

}


class1.staticMethod();

如果要给每个函数对象都添加通用的静态方法,还可以函数对象所对应的类Function来实现:

Function.prototype.showArgsCount=function(){

            alert(this.length);

}

function class1(a){

}

class1.showArgsCount();

由此可见,通过Function的prototype原型对象,可以给任何函数都加上通用的静态成员。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值