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 相关文章推荐
jQuery学习3:操作元素属性和特性
Feb 07 Javascript
Jquey拖拽控件Draggable使用方法(asp.net环境)
Sep 28 Javascript
extjs之去除s.gif的影响
Dec 25 Javascript
纯JavaScript实现HTML5 Canvas六种特效滤镜示例
Jun 28 Javascript
JS实现点击下载的小例子
Jul 10 Javascript
JavaScript获得当前网页来源页面(即上一页)的方法
Apr 03 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
Aug 14 Javascript
BootStrap daterangepicker 双日历控件
Jun 02 Javascript
原生JS+Canvas实现五子棋游戏
May 28 Javascript
js实现移动端轮播图效果
Dec 09 Javascript
使用ECharts实现状态区间图
Oct 25 Javascript
Vue程序化的事件监听器(实例方案详解)
Jan 07 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类Class的概念
2012/06/14 PHP
php实现的九九乘法口诀表简洁版
2014/07/28 PHP
codeigniter发送邮件并打印调试信息的方法
2015/03/21 PHP
四个PHP非常实用的功能
2015/09/29 PHP
Yii视图CGridView列表用法实例分析
2016/07/12 PHP
php中的异常和错误浅析
2017/05/03 PHP
php经典趣味算法实例代码
2020/01/21 PHP
下载文件个别浏览器文件名乱码解决办法
2013/03/19 Javascript
js中函数调用的两种常用方法使用介绍
2014/07/17 Javascript
JavaScript基础函数整理汇总
2015/01/30 Javascript
JS实现判断碰撞的方法
2015/02/11 Javascript
封装获取dom元素的简单实例
2016/07/08 Javascript
使用get方式提交表单在地址栏里面不显示提交信息
2017/02/21 Javascript
分析javascript原型及原型链
2018/03/18 Javascript
让axios发送表单请求形式的键值对post数据的实例
2018/08/11 Javascript
js验证密码强度解析
2020/03/18 Javascript
Vue双向绑定实现原理与方法详解
2020/05/07 Javascript
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
2014/01/22 Python
Python自动登录126邮箱的方法
2015/07/10 Python
Python用UUID库生成唯一ID的方法示例
2016/12/15 Python
python使用itchat库实现微信机器人(好友聊天、群聊天)
2018/01/04 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
Python过滤掉numpy.array中非nan数据实例
2020/06/08 Python
Django+RestFramework API接口及接口文档并返回json数据操作
2020/07/12 Python
vscode调试django项目的方法
2020/08/06 Python
施华洛世奇水晶荷兰官方网站:SWAROVSKI荷兰
2017/05/12 全球购物
瑞典的玛丽小姐:Miss Mary of Sweden
2019/02/13 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
人力资源部副职的竞聘演讲稿
2014/01/07 职场文书
十佳美德少年事迹材料
2014/02/05 职场文书
美德少年事迹材料500字
2014/08/19 职场文书
入党函调证明材料
2014/12/24 职场文书
员工拾金不昧表扬稿
2015/05/05 职场文书
《窃读记》教学反思
2016/02/18 职场文书
SpringBoot前端后端分离之Nginx服务器下载安装过程
2022/08/14 Servers