javascript 面向对象的JavaScript类


Posted in Javascript onMay 04, 2010

在上一节面 JavaScript 面向对象之命名空间 中说了怎么定义JavaScript命名空间,这一节来说下紧接着的一个概念——类。虽然JavaScript中没有class关键字,但作为开发人员我们一定要有这个思想。在C#中类可以分为实例类和静态类,JavaScript亦然。

一,定义实例类: 在上节中我定义了一个cnblogs.news的命名空间,现在就在此命名空间下定义一个名为Article类:

cnblogs.news.Article=function(){ 
var _this=this; 
this.title=null; 
this.content=null; 
this.show=function(){ 
document.write("<h1>"+_this.title+"</h1>"); 
document.write("<p>"+_this.content+"</p>"); 
} 
}

创建对象就和C#一样:
// 实例化一个对象 
var article =new cnblogs.news.Article(); 
// 给对象的属性赋值 
article.title="这是文章标题"; 
article.content="这是文章内容"; 
// 调用对象的方法 
article.show();

二,定义静态类:所谓静态类就是直接调用类的成员,换言之,类的成员是属于类的,不属于对象。同样以Article为例,代码如下:
cnblogs.news.Article={ 
title:"这是文章标题", 
content:"这是文章内容", 
show:function(){ 
document.write("<h1>"+cnblogs.news.Article.title+"</h1>"); 
document.write("<p>"+cnblogs.news.Article.content+"</p>"); 
} 
};

调用方式也和C#类似:
cnblogs.news.Article.show();
到这里或许你已经发现了,所谓JavaScript静态类其实就是一个json对象,恭喜,答对了! ^_^
三,如何选择:
那么何时选择实例类,何时选择静态类呢,就个人经验而言(说得不对敬请斧正刀正,怎么正都可以^_^),开发一些对dom的依赖比较弱,而要求复用型很强的程序,如工具类,插件类,结构,使用静态类;反之如果程序对dom依赖很强,经常有变量传来传去,或者对类的结构造成变化,这时选用实例类。个人比较推崇第一种方案,其代码风格较之第二种更像C#,我想写惯了C#的同学也会这样觉得的,^_^。
作者: 祥叔
Javascript 相关文章推荐
js 浏览器事件介绍
Mar 30 Javascript
滚动图片效果 jquery实现回旋滚动效果
Jan 08 Javascript
js的压缩及jquery压缩探讨(提高页面加载性能/保护劳动成果)
Jan 29 Javascript
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
Jun 26 Javascript
浅谈JavaScript中的对象及Promise对象的实现
Nov 15 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
Jan 06 Javascript
如何实现json数据可视化详解
Nov 24 Javascript
基于对象合并功能的实现示例
Oct 10 Javascript
node版本管理工具n包使用教程详解
Nov 09 Javascript
Vue动态组件与异步组件实例详解
Feb 23 Javascript
微信分享invalid signature签名错误踩过的坑
Apr 11 Javascript
vue 图片裁剪上传组件的实现
Nov 12 Javascript
JavaScript 面向对象之命名空间
May 04 #Javascript
10个实用的脚本代码工具
May 04 #Javascript
利用location.hash实现跨域iframe自适应
May 04 #Javascript
Array.prototype 的泛型应用分析
Apr 30 #Javascript
jQuery 锚点跳转滚动条平滑滚动一句话代码
Apr 30 #Javascript
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
Apr 29 #Javascript
匹配任意字符的正则表达式写法
Apr 29 #Javascript
You might like
PHP 模拟登陆MSN并获得用户信息
2009/05/16 PHP
jquery ajax abort()的使用方法
2010/10/28 Javascript
select标签模拟/美化方法采用JS外挂式插件
2013/04/01 Javascript
alert中断settimeout计时功能
2013/07/26 Javascript
node.js中的querystring.parse方法使用说明
2014/12/10 Javascript
JavaScript实现的简单幂函数实例
2015/04/17 Javascript
js实现仿百度汽车频道选择汽车图片展示实例
2015/05/06 Javascript
使用jquery+CSS3实现仿windows10开始菜单的下拉导航菜单特效
2015/09/24 Javascript
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
在ES5与ES6环境下处理函数默认参数的实现方法
2018/05/13 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
开发用到的js封装方法(20种)
2018/10/12 Javascript
node.js的http.createServer过程深入解析
2019/06/06 Javascript
ES6对象操作实例详解
2020/05/23 Javascript
Vue实现指令式动态追加小球动画组件的步骤
2020/12/18 Vue.js
python创建一个最简单http webserver服务器的方法
2015/05/08 Python
Python实现监控程序执行时间并将其写入日志的方法
2015/06/30 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
PyQt编程之如何在屏幕中央显示窗体的实例
2019/06/18 Python
Django文件存储 自己定制存储系统解析
2019/08/02 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
2020/02/20 Python
Python基于gevent实现文件字符串查找器
2020/08/11 Python
css3中用animation的steps属性制作帧动画
2019/04/25 HTML / CSS
加拿大床上用品、家居装饰、厨房和浴室产品购物网站:Linen Chest
2018/06/05 全球购物
美国领先的个性化礼品商城:Personalization Mall
2019/07/27 全球购物
雷朋巴西官方商店:Ray-Ban Brasil
2020/07/21 全球购物
股权转让协议书
2014/04/12 职场文书
销售活动策划方案
2014/08/26 职场文书
法学专业求职信范文
2015/03/19 职场文书
2015年医院工作总结范文
2015/04/09 职场文书
六一儿童节致辞
2015/07/31 职场文书
2016年小学生新年寄语
2015/08/18 职场文书
导游词之河北滦平金山岭长城
2019/10/16 职场文书
导游词之西安骊山
2019/12/03 职场文书
html5调用摄像头实例代码
2021/06/28 HTML / CSS
JS前端轻量fabric.js系列之画布初始化
2022/08/05 Javascript