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 相关文章推荐
用javascript实现点击链接弹出&quot;图片另存为&quot;而不是直接打开
Aug 15 Javascript
JavaScript DOM 添加事件
Feb 14 Javascript
用JQuery实现表格隔行变色和突出显示当前行的代码
Feb 10 Javascript
javascript之典型高阶函数应用介绍
Jan 10 Javascript
jquery 实现两级导航菜单附效果图
Mar 07 Javascript
Extjs grid添加一个图片状态或者按钮的方法
Apr 03 Javascript
jquery实现邮箱自动填充提示功能
Nov 17 Javascript
封装属于自己的JS组件
Jan 27 Javascript
layui表格实现代码
May 20 Javascript
小程序绑定用户方案优化小结
May 15 Javascript
javascript实现简单搜索功能
Mar 26 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
Oct 26 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面向对象全攻略 (十六) 对象的串行化
2009/09/30 PHP
Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法
2016/11/03 PHP
PHP实现用户登录的案例代码
2018/05/10 PHP
jquery配合css简单实现返回顶部效果
2013/09/30 Javascript
判断JS对象是否拥有某种属性的两种方式
2013/12/02 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
html的DOM中Event对象onabort事件用法实例
2015/01/21 Javascript
js判断文本框剩余可输入字数的方法
2015/02/04 Javascript
微信小程序 实例应用(记账)详解
2016/09/28 Javascript
浅谈Vue的基本应用
2016/12/27 Javascript
Jquery鼠标放上去显示全名的实现方法
2017/02/06 Javascript
详解vuejs之v-for列表渲染
2017/06/22 Javascript
ionic2中使用自动生成器的方法
2018/03/04 Javascript
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
linux下安装easy_install的方法
2013/02/10 Python
Using Django with GAE Python 后台抓取多个网站的页面全文
2016/02/17 Python
Python读取一个目录下所有目录和文件的方法
2016/07/15 Python
Python爬虫信息输入及页面的切换方法
2018/05/11 Python
Python机器学习库scikit-learn安装与基本使用教程
2018/06/25 Python
python3.5绘制随机漫步图
2018/08/27 Python
python re.sub()替换正则的匹配内容方法
2019/07/22 Python
使用Pycharm分段执行代码
2020/04/15 Python
Python爬虫HTPP请求方法有哪些
2020/06/03 Python
Python 中Operator模块的使用
2021/01/30 Python
如何给HTML标签中的文本设置修饰线
2019/11/18 HTML / CSS
一份创业计划书范文
2014/02/08 职场文书
小学生作文评语大全
2014/04/21 职场文书
小学阳光体育活动总结
2014/07/05 职场文书
水利水电专业自荐信
2014/07/08 职场文书
电工实训报告总结
2014/11/05 职场文书
2014年收银工作总结
2014/11/13 职场文书
优秀教师单行材料
2014/12/16 职场文书
社区服务活动报告
2015/02/05 职场文书
免职通知
2015/04/23 职场文书