---------------- 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();
不再需要实例化
[解决办法]
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() {}