码迷,mamicode.com
首页 > Web开发 > 详细

JS类的封装

时间:2016-08-09 02:02:51      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:

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#一模一样, 而结果也如我们所料。

JS类的封装

标签:

原文地址:http://www.cnblogs.com/Ma-lulu/p/5751482.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!