面向对象的基础就是定义类,下面是定义一个类的例子,它有属性、方法、静态属性和静态方法

我采用的是混合的构造函数/原型方式,这种方式是最优的方式。

即用原型方式定义类的函数属性,用构造函数的方式定义类的非函数属性。

//定义一个Dog 类,他有一个属性name,一个静态属性皮肤(skin)有毛,一个方法会叫(wow),一个静态方法吃(eat)

    function Dog(_name) {
            //属性
            this.name = _name;
        }
        Dog.prototype.wow= function(){
            alert(this.name+"叫:wow");
        }
        //静态属性
        Dog.skin = "有毛";
        //静态方法,吃
        Dog.eat = function(){
            alert("会吃");
        }

        //实例化测试

        var myDog = new Dog("旺财");

        myDog.wow();

        alert(myDog.name);

        Dog.eat();

        alert(Dog.skin);

下面是继承的实例

 //有一条疯狗,继承自狗,它除了有名字外,还有颜色,它叫起来就连续叫两声
        function MadDog(_name, _color)
        {
            //继承name 属性
            Dog.call(this, _name);
            //添加自己的属性
            this.color = _color;
        }
        //继承方法
        MadDog.prototype = new Dog();
        //重写方法
        MadDog.prototype.wow = function() {
            alert(this.name + "叫:wow,我是:"+this.color);
            alert(this.name + "叫:wow,我是:"+this.color);
        }
        //测试
        var myMadDog = new MadDog("阿福", "黄色");
        myMadDog.wow();
        var myDog = new Dog("旺财");
        myDog.wow();