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

这里也来谈谈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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值