普通写法

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());
}
04-23 01:06