//定义一个类
function TestClass(name)
{
    
//初始化时总数+1
    TestClass.prototype.Count++;

    
//定义一个属性,并设置默认值
    this.Name = name || "jxh";

    
//定义一个静态类属性
    TestClass.prototype.Current.InternalName = this.Name;

    
//定义一个对象属性
    this.internalClass = new InternalClass(this.Name);

    
//定义一个方法
    this.GetFormatName = function()
    
{
        var fname 
= this.internalClass.FormatName();
        
return fname;
    }

}


//为TestClass类定义一个静态属性
TestClass.prototype.Count = 0;

//为TestClass类定义一个静态类属性
TestClass.prototype.Current = new InternalClass("没有实例");

//内部类
function InternalClass(name)
{
    
this.InternalName = name;
}
对于静态属性的访问,除了 [类名.prototype.属性名] 的访问方式外,直接用 [对象名.属性名] 也能访问,但由于 [对象名.属性名] 的访问方式如果对属性做了修改的话, [对象名.属性名] 将不在和 [类名.prototype.属性名] 的值一致,可能会引起误会,所以建议对静态属性只使用[类名.prototype.属性名] 一种方式去访问。
<script language = "javascript">
    function Click_Event()
    
{
        alert(
"没有实例对象");
        alert(
"TestClass.prototype.Count:" + TestClass.prototype.Count);
        alert(
"TestClass.prototype.Current:" + TestClass.prototype.Current.InternalName);

        var testClass1 
= new TestClass(); 
        alert(
"实例1个对象");
        alert(
"TestClass.prototype.Count:" + TestClass.prototype.Count);
        alert(
"TestClass.prototype.Current:" + TestClass.prototype.Current.InternalName);

        var testClass2 
= new TestClass("jxhwei"); 
        alert(
"实例2个对象");
        alert(
"TestClass.prototype.Count:" + TestClass.prototype.Count);
        alert(
"TestClass.prototype.Current:" + TestClass.prototype.Current.InternalName);
    }

</script>
posted on 2007-02-01 09:47  非我  阅读(497)  评论(0编辑  收藏  举报