Javascript面向对象相关的一个例子

来源:互联网 发布:淘宝宝贝上架流程 编辑:程序博客网 时间:2024/05/16 04:07

这里也来谈谈javascript的面向对象。我们知道javascript不像java那样,面相对象那么明显,或者说太明显了。

前段时间的一个项目我在其中弄了大量的javascript,各种javascript插件,各种javascript框架。虽然一直在用着,但是一直没怎么总结过,闲下来有空的时候,就总结了这么一小段吧。

javascript用起来,怎么说呢,太自由了,有时候甚至无法把控,不像java那样限制比较多。

我的个人总结,也算是给像 从javascript入门的同仁一个帮助吧。由于作者个人能力有限,如有不太精准的地方,敬请谅解。



/** * @author 潇湘暮雨 E-mail:wxwinnie@hotmail.com * * @version 创建时间:2014年1月19日 上午10:19:17 * */$(function() {// 任何地方的这种匿名函数“$(function(){})”都不需要调用自动执行的(如果引入了这个js文件的话)。var Config_center = function() {// 这个类似于java中的构造函数,因为javascript中将函数也可以作为一种变量或者对象,//所以,可以将一个函数这么赋值。this.itsm = new Itsm();this.tool = new util.Tool();this.dialog = new util.Dialog();};// 这里需要说说extend。Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型 Jquery的扩展方法原型是:// extend(dest,src1,src2,src3...);它的含义是将src1,src2,src3...合并到dest中,返回值为合并后的dest,// 由此可以看出该方法合并后,是修改了dest的结构的。这里相当于向Config_center类中添加函数或方法。$.extend(Config_center.prototype, {callbackCreateServiceRow : function(nRow, aData, iDataIndex) {//定义一个函数var itsm = this.itsm;var id = aData["id"];itsm.appendCheckBox(nRow, id);var operates = [{"href" : "/itsm/config/" + "service"+ "/update?type=update&id=" + id,"class" : "black-icons create_write","value" : "修改服务项"}];itsm.appendOperateBtns(nRow, operates);itsm.appendStatusCell(nRow, aData["validId"]);itsm.appendDefaultCellContent(nRow, {"content" : "暂无信息","index" : [3, 4, 5]});itsm.addClass(nRow, [{"class" : "center","index" : [1, 2, 3, 4, 5, 6]}]);},callbackCreateWorkHourAllRow : function(nRow, aData) {var itsm = this.itsm;var id = aData["id"];var operates = [];// javascript支持如下形式的定义数组。数组元素用方括号“[]”括起来,然后每个元素如果是对象类型的话,//每个对象用花括号“{}”括起来,然后每个属性名称与属性值之间用冒号“:”隔开,也就是json格式的。operates = [{"href" : "/itsm/config/workhour/edit?id=" + id,"class" : "icon-edit","value" : "修改任务"}, {"href" : "/itsm/config/workhour/detail?id=" + id,"class" : "icon-file","value" : "查看详情"}, {"href" : "/itsm/config/workhour/delete?id=" + id,"class" : "icon-remove","value" : "删除"}];itsm.appendOperateBtns(nRow, operates);}});// new Config_center()相当于调用了构造方法,创建了一个Config_center的对象。//然后又因为这个对象被赋值给了window对象的一个属性,也就是在任意地方可以这么调用这个对象://config_center.allbackCreateWorkHourAllRow。省略了window。window.config_center = new Config_center();});


0 0