首页 > 代码库 > javascript设计模式1

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设计模式1