JavaScript之面向对象研究一

     首先,对象是什么?在编程语言中有一种万物皆对象,即一切事物都可以视为对象。按照JAVA的面向对象的理念,对象有属性和行为(即方法)。

    ---本例是:由于一个系统会出现很多以某某时间到某某时间的查询,且有时候要从后台取时间到前台。代码的重用行太高,所以采用对象封装让全系统调用

    那么js怎么编码才能实现面向对象呢?

var ltx={
	formatDate:null,  //属性
	//第一个参数为后台取出来的startTime
    //第二个参数为界面上要设置的值对应的id
	initTime:function(start,startTimeVar,end,endTimeVar,day){
		if(start==null || start==""){
			$('#'+startTimeVar).datetimebox('setValue',toDDMMMYYYY(subtracteDate(new Date(),day)));
		}else{
			$('#'+startTimeVar).datetimebox('setValue',start); 
		}
		if(end==null || end==""){
	 	 	$('#'+endTimeVar).datetimebox('setValue',toDDMMMYYYY(new Date()));
		}else{
			$('#'+endTimeVar).datetimebox('setValue',end);
		}
		
		//方法
		function subtracteDate(dd,dadd){
			var a = new Date(dd);  
			a = a.valueOf();  
			a = a - dadd * 24 * 60 * 60 * 1000;  
			a = new Date(a);  
			return a; 
		}
		
		function toDDMMMYYYY(date){
			var d = new Date(date.getTime());    
			var dd = d.getDate() < 10 ? "0" + d.getDate() : d.getDate().toString();    
			var mmm = d.getMonth() +1 <10 ? "0" + (d.getMonth()+1) : (d.getMonth()+1).toString();    
			var yyyy = d.getFullYear().toString();     
			var HH=d.getHours() <10 ? "0" + d.getHours() : d.getHours().toString();  
			var mm=d.getMinutes() < 10 ? "0" + d.getMinutes() : d.getMinutes().toString();  
			var ss=d.getSeconds() < 10 ? "0" + d.getSeconds() : d.getSeconds().toString();  
			return yyyy+"-"+mmm +"-"+dd + " "+HH+":"+mm+":"+ss;
		}
	}
};
    上面的代码块中,ltx视为一个对象,而formatDate是个属性,initTime()是其中的一个方法。我们看到里面方法调用方法。且在initTime()的方法书写方式和subtracteDate、toDDMMMYYYY都不一样。怎么调用呢?

    很简单,在页面加载时,直接类名.方法(),传入参数

 	$(function() {	
		//初始化时间
		ltx.initTime("","startTimehntview","","endTimehntview",30);
	});
   那么,我是否可以将subtracteDate、toDDMMMYYYY的方法和init方法写成平级方法呢,这样在initTime()中调用时我们使用类名.方法呢?

	var ltx={
		formatDate:null,  //属性
		//第一个参数为后台取出来的startTime
		//第二个参数为界面上要设置的值对应的id
		initTime:function(start,startTimeVar,end,endTimeVar,day){
			if(start==null || start==""){
				$('#'+startTimeVar).datetimebox('setValue',ltx.toDDMMMYYYY(ltx.subtracteDate(new Date(),day)));
			}else{
				$('#'+startTimeVar).datetimebox('setValue',start); 
			}
			if(end==null || end==""){
			 	$('#'+endTimeVar).datetimebox('setValue',ltx.toDDMMMYYYY(new Date()));
			}else{
				$('#'+endTimeVar).datetimebox('setValue',end);
			}
		},
		subtracteDate:function(dd,dadd){
			var a = new Date(dd);  
			a = a.valueOf();  
			a = a - dadd * 24 * 60 * 60 * 1000;  
			a = new Date(a);  
			return a; 
		},
		toDDMMMYYYY:function(date){
			var d = new Date(date.getTime());    
			var dd = d.getDate() < 10 ? "0" + d.getDate() : d.getDate().toString();    
			var mmm = d.getMonth() +1 <10 ? "0" + (d.getMonth()+1) : (d.getMonth()+1).toString();    
			var yyyy = d.getFullYear().toString();     
			var HH=d.getHours() <10 ? "0" + d.getHours() : d.getHours().toString();  
			var mm=d.getMinutes() < 10 ? "0" + d.getMinutes() : d.getMinutes().toString();  
			var ss=d.getSeconds() < 10 ? "0" + d.getSeconds() : d.getSeconds().toString();  
			return yyyy+"-"+mmm +"-"+dd + " "+HH+":"+mm+":"+ss;
		}
	};
   调用还是一样。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值