雪黛缘
-失业中...QQ:941187431
在javaScript下并不像其他面向对象的语言那样有严格的没定义方法.规定的应该只是函数的定义function()
以下是几种看到过的类定义的方式:
工厂方式:
<script language="javascript" type="text/javascript">
        function Personsfactory(name,age)
        {
            var person=new Object();
            person.Name=name;
            person.Age=age;
            person.Show=function()
            {
                alert(this.Name+this.Age);
            }
            return person;
        }
        var personeD=Personsfactory('do',10);
        var personeZ=Personsfactory('zb',11);
        personeD.Show();
        personeZ.Show();
    </script>
构造函数方式:
<script language="javascript" type="text/javascript">
        function Person(name,age)
        {
            this.Name=name;
            this.Age=age;
            this.Show=function()
            {
                alert(this.Name+this.Age);
            }
        }
        var personeD=new Person('do',10);
        var personeZ=new Person('zb',11);
        personeD.Show();
        personeZ.Show();
    </script>
构造函数&原型方式:
<script type="text/javascript" language="javascript">
        function Person(name,age)
        {
            this.Name=name;
            this.Age=age;
        }
        Person.prototype.Show=function()
        {
            alert(this.Name+this.Age);
        }
        var personeD=new Person('do',10);
        var personeZ=new Person('zb',11);
        personeD.Show();
        personeZ.Show();
    </script>
动态的原型方式:
<script type="text/javascript" language="javascript">
        function Person(a,b)
        {
            this.Name=a;
            this.Age=b;
            if(typeof Person._initialize=="undefined")
            {
                Person.prototype.Show=function()
                {
                    alert(this.Name+this.Age);
                }
            }
            Person._initialize=true;
        }
        var personeD=new Person('do',10);
        var personeZ=new Person('zb',11);
        personeD.Show();
        personeZ.Show();
    </script>
构造函数&原型方式和动态的原型方式是属于比较常用的js下的类定义方式了.
现在还有各种的框架提供了不同的类的定义方法:
还接触的比较少,接触过的prototype的类定义方法为:
<script language="javascript" type="text/javascript">
        var Person=Class.create();
        Person.prototype={
        initialize:function(name,age)
        {
            this.Name=name;
            this.Age=age;
        },
        Show:function()
        {
            alert(this.Name+this.Age);
        }
        }
        var test=new Person('Do','11');
        test.Show();
</script>
posted on 2007-12-02 19:59  zhuibobo  阅读(159)  评论(3编辑  收藏  举报