普通写法
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()); }