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 相关文章推荐
DB.ASP 用Javascript写ASP很灵活很好用很easy
Jul 31 Javascript
jQuery插件-jRating评分插件源码分析及使用方法
Dec 28 Javascript
用jquery方法操作radio使其默认选项是否
Sep 10 Javascript
JQuery验证jsp页面属性是否为空(实例代码)
Nov 08 Javascript
异步JS框架的作用以及实现方法
Oct 29 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
Jan 23 Javascript
jQuery实现的文字hover颜色渐变效果实例
Feb 20 Javascript
BootStrap fileinput.js文件上传组件实例代码
Feb 20 Javascript
js判断输入框不能为空格或null值的实现方法
Mar 02 Javascript
在vue项目中正确使用iconfont的方法
Sep 28 Javascript
express框架下使用session的方法
Jul 31 Javascript
Python版实现微信公众号扫码登陆
May 28 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
教你如何把一篇文章按要求分段
2006/10/09 PHP
PHP开发框架Laravel数据库操作方法总结
2014/09/03 PHP
PHP正则表达式函数preg_replace用法实例分析
2020/06/04 PHP
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
js单例模式的两种方案
2013/10/22 Javascript
js实现iframe自动自适应高度的方法
2015/02/17 Javascript
极易被忽视的javascript面试题七问七答
2016/02/15 Javascript
jQuery判断元素是否显示 是否隐藏的简单实现代码
2016/05/19 Javascript
纯js和css完成贪吃蛇小游戏demo
2016/09/01 Javascript
jQuery实现限制文本框的输入长度
2017/01/11 Javascript
NodeJS处理Express中异步错误
2017/03/26 NodeJs
nodejs结合Socket.IO实现的即时通讯功能详解
2018/01/12 NodeJs
JavaScript同源策略和跨域访问实例详解
2018/04/03 Javascript
vue源码学习之Object.defineProperty 对数组监听
2018/05/30 Javascript
LayUI表格批量删除方法
2018/08/15 Javascript
如何阻止小程序遮罩层下方图层滚动
2019/09/05 Javascript
JS对象属性的检测与获取操作实例分析
2020/03/17 Javascript
python通过socket查询whois的方法
2015/07/18 Python
详解Python nose单元测试框架的安装与使用
2017/12/20 Python
tensorflow训练中出现nan问题的解决
2018/02/10 Python
Python实现识别图片内容的方法分析
2018/07/11 Python
详解Python装饰器
2019/03/25 Python
创建Django项目图文实例详解
2019/06/06 Python
详解Python中的测试工具
2019/06/09 Python
Python检查 云备份进程是否正常运行代码实例
2019/08/22 Python
节日快乐! Python画一棵圣诞树送给你
2019/12/24 Python
pandas中的数据去重处理的实现方法
2020/02/10 Python
python如何判断IP地址合法性
2020/04/05 Python
Django中文件上传和文件访问微项目的方法
2020/04/27 Python
解决pip install psycopg2出错问题
2020/07/09 Python
Ibatis中如何提高SQL Map的性能
2013/05/11 面试题
毕业实习个人鉴定范文
2013/12/10 职场文书
办公室主任职责范本
2014/03/07 职场文书
入党积极分子自我批评思想汇报
2014/10/10 职场文书
教师个人工作总结范文2015
2015/10/14 职场文书
房地产置业顾问工作总结
2015/10/23 职场文书