javascript 的静态函数



Function本身也是个Object,所以,如果说js里有"实例属性"和"实例方法"的话,那它们是在构造函数理定义如下:
[code]
function className(){
this.a = "";   //实例属性
this.b =" ";

this.c= funcC;  //实例方法


}

function funcC(){ //方法
......
}
[/code]
或用:
[code]
function className(){
}
className.prototype.a="";
className.prototype.b=" ";

className.prototype.c=function(){..............}
}
[/code]
注:上两者也有区别.

利用如上的构造函数可以new新对象.但不能zhiji通过类名引用.

然而对于javascript来讲构造函数本身也是一个对象,也可以有自己的属性和方法.
可以说这就类似是"类属性"和"类方法".
function ChinaRen(){

..................

}

ChinaRen.Country ='中国';  //类属性

ChinaRen.getCountry =function(){return ChinaRen.Country};    //类方法

ChinaRen.setCountry =function(sValue){return ChinaRen.Country=sValue};


这种属性和方法可通过"类名.属性"和"类名.方法"引用,但不能通过new传给实例对象.

所以,如果既想可new又可用"类名.方法",如下:

<script type="text/javascript">
function ChinaRen(){
this.Country = "china";
this.getCountry = ChinaRen.getCountry;
this.setCountry = ChinaRen.setCountry;
}
ChinaRen.Country = "china";
ChinaRen.getCountry = function(){return ChinaRen.Country};
ChinaRen.setCountry = function(strCountry){ChinaRen.Country = strCountry};

alert(ChinaRen.getCountry());
ChinaRen.setCountry("中国");
alert(ChinaRen.getCountry());

var chinaRen = new ChinaRen();
alert(chinaRen.getCountry());
chinaRen.setCountry("中国");
alert(chinaRen.getCountry());
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值