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国旗变换效果代码
Aug 13 Javascript
利用javascript移动div层-javascript 拖动层
Mar 22 Javascript
javascript中的toFixed固定小数位数 简单实例分享
Jul 12 Javascript
jquery选择器大全 全面详解jquery选择器
Mar 06 Javascript
node.js入门教程迷你书、node.js入门web应用开发完全示例
Apr 06 Javascript
jQuery获得指定元素坐标的方法
Apr 14 Javascript
javascript密码强度校验代码(两种方法)
Aug 10 Javascript
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
Jun 14 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
Sep 27 Javascript
如何为你的JavaScript代码日志着色详解
Apr 08 Javascript
Vuex实现数据增加和删除功能
Nov 11 Javascript
微信小程序使用GoEasy实现websocket实时通讯
May 19 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 ajax 静态分页过程形式
2011/09/02 PHP
PHP实现数组递归转义的方法
2014/08/28 PHP
php封装的pdo数据库操作工具类与用法示例
2019/05/08 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
php的对象传值与引用传值代码实例讲解
2021/02/26 PHP
js实现网站首页图片滚动显示
2013/02/04 Javascript
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
浅谈javascript 归并方法
2015/01/21 Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
2015/05/12 Javascript
详解JavaScript的Polymer框架中的通知交互
2015/07/29 Javascript
JavaScript中的原型prototype完全解析
2016/05/10 Javascript
JS上传图片预览插件制作(兼容到IE6)
2016/08/07 Javascript
JavaScript基于对象去除数组重复项的方法
2016/10/09 Javascript
浅谈javascript中遇到的字符串对象处理
2016/11/18 Javascript
angularjs中ng-attr的用法详解
2016/12/31 Javascript
JSON与JS对象的区别与对比
2017/03/01 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
vue element中axios下载文件(后端Python)
2019/05/10 Javascript
taro小程序添加骨架屏的实现代码
2019/11/15 Javascript
基于vue+element实现全局loading过程详解
2020/07/10 Javascript
selenium+python环境配置教程详解
2019/05/28 Python
Python类中的魔法方法之 __slots__原理解析
2019/08/26 Python
提升python处理速度原理及方法实例
2019/12/25 Python
Python+pyftpdlib实现局域网文件互传
2020/08/24 Python
python 写一个性能测试工具(一)
2020/10/24 Python
贝尔帐篷精品店:Bell Tent Boutique
2019/06/12 全球购物
Cult Gaia官网:美国生活方式品牌
2019/08/16 全球购物
美国鲜花递送:UrbanStems
2021/01/04 全球购物
main 函数执行以前,还会执行什么代码
2013/04/17 面试题
土建专业毕业生自荐书
2014/07/04 职场文书
幼儿园重阳节活动总结
2015/05/05 职场文书
上级领导检查欢迎词
2015/09/30 职场文书
详解Python魔法方法之描述符类
2021/05/26 Python
解决Maven项目中 Invalid bound statement 无效的绑定问题
2021/06/15 Java/Android