---------------- JS 中实现静态属性-------------------
通常情况下 ,大家都用 prototype 为类定义非静态的属性
那么要为类定义一个静态的属性
如题,我想在一个自定义类中实现静态
------解决方案--------------------var s = function(){
this.a = function(){
alert('aa');
};
var b = function(){
alert('bb');
};
};
var t = new s();
s.a();
s.b();
------解决方案--------------------function xxx()
{}
xxx.xx="xxx";//定义静态属性
------解决方案--------------------<script type="text/javascript">
var xx = new Function();
xx.prototype.static = {
version : "1.1.1"
};
var a = new xx;
var b = new xx;
a.static.version = "2.2.2";
alert(b.static.version);
</script>
------解决方案--------------------s.a();
s.b();
---
sorry
应该是 t.a();t.b();
调用一下就知道了,在类里面用this.property||method 可以实现属性和方法私有
针对你提出的问题:
可以直接 var d = {
a:function(){
//
};
b:'bb';
};
这样可直接去访问: d.a();d.b();
不再需要实例化
------解决方案--------------------JScript code
function Test(){
this.name="test";
}
Test.sName = "sName";
var t = new Test();
alert(t.name);
alert(t.sName);
alert(Test.sName);
------解决方案--------------------
到... new 就不是静态了,,,
你直接用 Object 就行了.............
------解决方案--------------------
这样就可以了
<script language="javascript">
function uclass(){
}
//静态属性
uclass.Name="sample";
//静态方法
uclass.test=function(){
alert(1);
}
alert(uclass.Name)
</script>
------解决方案--------------------
属性器嘛...啥静态属性...
------解决方案--------------------
FF里有__defineSetter__
IE里实现不了,最多只可以用toString模拟__defineGetter__
------解决方案--------------------
静态属性就是不用prototype直接加到对象上。
/* 这是一个实例方法 */
String.prototype.instanceMethod = function() {}
/* 这是一个静态方法 */
String.staticMethod = function() {}