javascript设计模式1

普通写法

function startAnimation(){

    ...

}

function stopAnimation(){

    ...

}

对象类

/*Anim class*/

var Anim=function(){

    ...

};

Anim.prototype.start = function() {

    ...

};

Anim.prototype.stop = function() {

    ...

};

/*Usage*/

var myAnim=new Anim();

myAnim.start();

...

myAnim.stop();

...

也可以这样写

 

var Anim=function(){

    ...

};

Anim.prototype={

    start:function(){

        ...

    },

    stop:function(){

        ...

    }

};

再尝试一种

Function.prototype.method=function(name,fn){

    this.prototype[name]=fn;

};

var Anim=function(){

    ...

};

Anim.method('start',function(){

    ...

});

Anim.method('stop',function(){

    ...

});

更进一步

Function.prototype.method=function(name,fn){

    this.prototype[name]=fn;

    return this;

};

var Anim=function(){

    ...

};

Anim.method('start',function(){

    ...

}).

Anim.method('stop',function(){

    ...

});

利用匿名函数我们可以这样

(function(){

    var foo=10;

    var bar=2;

    alert(foo*bar);

})();

也可以这样

(function(foo,bar){

    alert(foo*bar);

})(10,2);

在js中,一切都是对象

function displayError(message){

    displayError.numb++;

    alert(message);

};

displayError.numb=0;

引申一下

function Person(name,age){

    this.name=name;

    this.age=age;

};

Person.prototype={

    getName:function(){

        return this.name;

    },

    getAge:function(){

        return this.age;

    }

}

var alice=new Person('Alice',26);

var bill=new Person('Bill',23);

Person.prototype.getGreeting=function(){

    return 'Hi'+this.getName()+'!';

};

alice.displayGreeting=function(){

    alert(this.getGreeting());

}

 

你可能感兴趣的:(JavaScript)