var s = function(){
  this.a = function(){
    alert('aa');
  };
  var b = function(){
   alert('bb');
  };
};var t = new s();
s.a();
s.b();

解决方案 »

  1.   

    function xxx()
    {}xxx.xx="xxx";//定义静态属性
      

  2.   

    <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>
      

  3.   

    s.a(); 
    s.b(); ---sorry
    应该是 t.a();t.b();调用一下就知道了,在类里面用this.property||method 可以实现属性和方法私有针对你提出的问题:
    可以直接 var d = {
      a:function(){
       //
      };
      b:'bb';
    };这样可直接去访问: d.a();d.b();
    不再需要实例化
      

  4.   

    function Test(){
        this.name="test";
    }
    Test.sName = "sName";
    var t = new Test();alert(t.name);
    alert(t.sName);
    alert(Test.sName);
      

  5.   

    到... new 就不是静态了,,,
    你直接用 Object 就行了.............
      

  6.   

    这样就可以了
    <script language="javascript">
    function uclass(){
    }
    //静态属性
    uclass.Name="sample";
    //静态方法
    uclass.test=function(){
     alert(1);
    }
    alert(uclass.Name)
    </script>
      

  7.   

    不好意思,没把事情说清楚我想要实现的功能是这样的
    假如定义类  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 "属性只读"
    }
      

  8.   

    FF里有__defineSetter__
    IE里实现不了,最多只可以用toString模拟__defineGetter__
      

  9.   

    <script language="javascript" > 
    //不想被改常量放到类中作为类变量
    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 >
      

  10.   

    静态属性就是不用prototype直接加到对象上。/* 这是一个实例方法 */
    String.prototype.instanceMethod = function() {}/* 这是一个静态方法 */
    String.staticMethod = function() {}
      

  11.   

    楼上的大哥,你这是静态方法的说var a=String.staticMethod();
    var a=String.staticMethod;这两个不同的说
      

  12.   

    JS不是C#,定义的每个属性/方法都是 public 的,实现不了你想要的好种 get; set;
    其实你只是想在改变值的时候做一个监控,那还不如用一个方法更好:
    Class.name ==> Class.setName() 这样你就可以监控了