<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);
{}xxx.xx="xxx";//定义静态属性
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.b(); ---sorry
应该是 t.a();t.b();调用一下就知道了,在类里面用this.property||method 可以实现属性和方法私有针对你提出的问题:
可以直接 var d = {
a:function(){
//
};
b:'bb';
};这样可直接去访问: d.a();d.b();
不再需要实例化
this.name="test";
}
Test.sName = "sName";
var t = new Test();alert(t.name);
alert(t.sName);
alert(Test.sName);
你直接用 Object 就行了.............
<script language="javascript">
function uclass(){
}
//静态属性
uclass.Name="sample";
//静态方法
uclass.test=function(){
alert(1);
}
alert(uclass.Name)
</script>
假如定义类 ClassA
function ClassA()
{
}在给他定义一个属性 P1,可以这样访问var a=ClassA.P1我想让这个属性只读,或者在修改它的值时执行一个动作
当给P1赋值时 ClassA.P1="132456",抛出一个异常或者出现一个提示 ,相当于C#里面的如下代码
public static object P1
{
get{return .....}
set{throw new Exception("属性只读")}
}相当于JS如下函数ClassA.SetP1=function()
{
alert("属性只读")
throw "属性只读"
}
IE里实现不了,最多只可以用toString模拟__defineGetter__
//不想被改常量放到类中作为类变量
function Vars()
{
}
Vars.x = 0;
function uclass()
{
} //自定义类,通过ReadOnly()实现类变量不可修改
uclass.readZone = function()
{
function ReadOnly(){};
ReadOnly.prototype = Vars;
return new ReadOnly();
}
uclass.readZone().x = 100;
alert(uclass.readZone().x);//uclass.readZone().x是0,而不是100
</script >
String.prototype.instanceMethod = function() {}/* 这是一个静态方法 */
String.staticMethod = function() {}
var a=String.staticMethod;这两个不同的说
其实你只是想在改变值的时候做一个监控,那还不如用一个方法更好:
Class.name ==> Class.setName() 这样你就可以监控了