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选择器(常用选择器说明)
Sep 28 Javascript
js格式化时间和js格式化时间戳示例
Feb 10 Javascript
原生javascript实现隔行换色
Jan 04 Javascript
javascript实现日期时间动态显示示例代码
Sep 08 Javascript
JavaScript中的Reflect对象详解(ES6新特性)
Jul 22 Javascript
总结AngularJS开发者最常犯的十个错误
Aug 31 Javascript
JavaScript鼠标特效大全
Sep 13 Javascript
js控制按钮,防止频繁点击响应的实例
Feb 15 Javascript
清空元素html(&quot;&quot;) innerHTML=&quot;&quot; 与 empty()的区别和应用(推荐)
Aug 14 Javascript
js 提取某()特殊字符串长度的实例
Dec 06 Javascript
浅谈vue 单文件探索
Sep 05 Javascript
Vue项目实现简单的权限控制管理功能
Jul 17 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中使用CURL伪造来路抓取页面或文件
2011/05/04 PHP
php与Mysql的一些简单的操作
2015/02/26 PHP
php使用memcoder将视频转成mp4格式的方法
2015/03/12 PHP
php恢复数组的key为数字序列的方法
2015/04/28 PHP
php curl批处理实现可控并发异步操作示例
2018/05/09 PHP
PHP实现二维数组中的查找算法小结
2018/06/09 PHP
制作高质量的JQuery Plugin 插件的方法
2010/04/20 Javascript
深入理解JavaScript系列(16) 闭包(Closures)
2012/04/12 Javascript
jQuery实现可拖动的浮动层完整代码
2013/05/27 Javascript
60个很实用的jQuery代码开发技巧收集
2014/12/15 Javascript
基于javascript实现的搜索时自动提示功能
2014/12/26 Javascript
JavaScript数组迭代方法
2017/03/03 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
2017/03/09 Javascript
ES6 系列之 Generator 的自动执行的方法示例
2018/10/19 Javascript
JavaScript常用工具方法封装
2019/02/12 Javascript
解决cordova+vue 项目打包成APK应用遇到的问题
2019/05/10 Javascript
vue与iframe之间的信息交互的实现
2020/04/08 Javascript
python dataframe astype 字段类型转换方法
2018/04/11 Python
python在html中插入简单的代码并加上时间戳的方法
2018/10/16 Python
Apache,wsgi,django 程序部署配置方法详解
2019/07/01 Python
Python实现读取并写入Excel文件过程解析
2020/05/27 Python
python Xpath语法的使用
2020/11/26 Python
在pycharm创建scrapy项目的实现步骤
2020/12/01 Python
详解Python爬虫爬取博客园问题列表所有的问题
2021/01/18 Python
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
2015/03/27 HTML / CSS
意大利奢侈品网站:Italist
2016/08/23 全球购物
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
New Balance比利时官方网站:购买鞋子和服装
2021/01/15 全球购物
可以使用抽象函数重写基类中的虚函数吗
2013/06/02 面试题
新春寄语大全
2014/04/09 职场文书
新学期国旗下演讲稿
2014/05/08 职场文书
机关干部作风建设剖析材料
2014/10/23 职场文书
春季运动会加油词
2015/07/18 职场文书
青年文明号创建口号大全
2015/12/25 职场文书
Python写情书? 10行代码展示如何把情书写在她的照片里
2022/04/21 Python
python 学习GCN图卷积神经网络
2022/05/11 Python