JS类的封装

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

时间: 2024-10-10 09:21:21

JS类的封装的相关文章

JS类的封装及实现代码

js并不是一种面向对向的语言, 没有提供对类的支持, 因此我们不能像在传统的语言里那样 用class来定义类, 但我们可以利用js的闭包封装机制来实现js类, 我们来封装一个简的Shape类. 1. 定义js类 js并不是一种面向对向的语言, 没有提供对类的支持, 因此我们不能像在传统的语言里那样 用class来定义类, 但我们可以利用js的闭包封装机制来实现js类, 我们来封装一个简的Shape类. 代码如下: function ShapeBase() { this.show = functi

JS类的封装及实现代码(转)

js并不是一种面向对向的语言, 没有提供对类的支持, 因此我们不能像在传统的语言里那样 用class来定义类, 但我们可以利用js的闭包封装机制来实现js类, 我们来封装一个简的Shape类. 1. 定义js类 js并不是一种面向对向的语言, 没有提供对类的支持, 因此我们不能像在传统的语言里那样 用class来定义类, 但我们可以利用js的闭包封装机制来实现js类, 我们来封装一个简的Shape类. 代码如下: function ShapeBase() { this.show = functi

PHP 类的封装和使用

类:相似的数据和数据操作的封装  class 成员量:普通的量加上一定的修饰就变成了成员量 public,protected,private 成员方法:普通的函数,加上一定的修饰,放入到类中就变成了成员方法. 实例化:类创建特例的过程(实例化一个对象 new) 对象: 类的特例或者实例   object 认识类 -> 类的封装 -> 类的实例化 -> 对象的认识 -> 操作对象 ----------------------------------------------------

自己手写的自动完成js类

在web开发中,为了提高用户体验,会经常用到输入框的自动完成功能,不仅帮助用户进行快速输入,最重要的是帮助那些“记不全要输入什么”的用户进行选择.这个功能有很多插件已经实现了,为了适应项目的特殊需求,决定自己编写一个具备通用性.扩展性和灵活性的自动完成类,就当是边写边学习了,一举两得.该功能是比较简单的,核心是数据获取方式和导航的实现,简单写了一个,经测试非常好用,还有很多地方需要修改和改进,例如:在原型中只暴露init方法即可,其他方法都需要放到私有空间内,不让用户访问到,这个以后再完善吧.啥

js类(继承)(二)

1. 定义js类js并不是一种面向对向的语言, 没有提供对类的支持, 因此我们不能像在传统的语言里那样 用class来定义类, 但我们可以利用js的闭包封装机制来实现js类, 我们来封装一个简的Shape类. 代码如下: function ShapeBase() { this.show = function() { alert("ShapeBase show"); }; this.init = function(){ alert("ShapeBase init");

歌手详情数据处理和Song类的封装

我们现在每首歌曲的数据都是这样的 我们需要在这个数据里面去提取我们需要的部分,来构造成我们需要的数据对象 那我们要和创建singer.js一样  同样也要创建song.js类 我们还要获取到每首歌对应的vkey  这样才能获取到播放源 封装一个工厂函数   为了创建不同的对象 singer要特殊处理  要将数组中的歌手名  拼接成一个字符串 在singer-detail中导入 原文地址:https://www.cnblogs.com/cmy1996/p/9189799.html

类和封装的概念

类和封装的概念 什么是类? 电脑一般而言是由CPU,内存,主板,键盘和硬盘等部件组合而成. 思考:学习电脑组装需要多少时间?学习电脑组装是都需要学习显示器,键盘,鼠标,主板等部件的设计与制造? 类的封装 我们可以把程序按某种规则分成很多"块",类与类之间可能会有联系,每个类都有一个可变部分(public)和一个不可变部分(private).我们需要把可变部分和不可变部分分离出来,将不可变的部分暴露给其他类,而将可变的部分隐藏起来,以便于随时可以让它修改.这项工作就是封装. 类分为以下两

022医疗项目-模块二:药品目录的导入导出-对XSSF导出excel类进行封装

资源全部来源于传智播客. 好的架构师写的程序,就算给刚入门的新手看,新手一看就知道怎么去用.所以我们要对XSSF导出excel类进行封装.这是架构师的工作,但我们也要知道. 我们写一个封装类: 这个类单独有自己的main函数. 我们进入main函数一步一步看: public static void main(String[] args) throws Exception { /** 导出文件存放物理路径 * @param fileWebPath * 导出文件web下载路径 * @param fi

数据访问类的封装与三大类

数据访问类的封装: 数据访问类分为三大类:连接类,实体类,数据访问类. 1.连接类: public class lianjie { private static string connection="server=.;database=mydb;uid=sa;pwd=789234178"; public static Sqlconnection conn { get { SqlConnection conn=new Sqlconnection(connecction); return