js并不是一种面向对向的语言, 没有提供对类的支持, 因此我们不能像在传统的语言里那样 用class来定义类, 但我们可以利用js的闭包封装机制来实现js类

1. 定义js类 
js并不是一种面向对向的语言, 没有提供对类的支持, 因此我们不能像在传统的语言里那样 用class来定义类, 但我们可以利用js的闭包封装机制来实现js类, 我们来封装一个简的Shape类. 

function ShapeBase() { 
this.show = function() 

alert("ShapeBase show"); 
}; 
this.init = function(){ 
alert("ShapeBase init"); 
}; 

这个类里定义了两个方法:show和init, 需要注意的是这里用到了this来声明, 而不是var, 因为用var是用来定义私有方法的. 
另外, 我们还可以用prototype属性来定义Shape的方法. 

ShapeBase.prototype.show=function() 

alert("ShapeBase show"); 

ShapeBase.prototype.init=function() 

alert("ShapeBase init"); 

上面这种写法看起来不太直观,我们可以将所有的方法写在一起. 

ShapeBase.prototype={ 
show:function() 

alert("ShapeBase show"); 
}, 
init:function() { 
alert("ShapeBase init"); 

}; 

让我们写个js来测试下, 看看结果是不是跟我们想象的一样

function test(src){ 
var s=new ShapeBase(); 
s.init(); 
s.show(); 

其调用方式和C#一模一样, 而结果也如我们所料。