WEB开发网
开发学院网页设计JavaScript 面向对象的JS-私有成员变量实现方式 阅读

面向对象的JS-私有成员变量实现方式

 2011-12-02 22:08:25 来源:WEB开发网   
核心提示:与网上广为流传的特权方法有所不同,这里是使用闭包来实现的,面向对象的JS-私有成员变量实现方式,并以一个简单的JS时钟示例作为演示, 各位如果觉得有什么不妥的地方欢迎指出

与网上广为流传的特权方法有所不同,这里是使用闭包来实现的。并以一个简单的JS时钟示例作为演示。


各位如果觉得有什么不妥的地方欢迎指出。

代码
(function JSClock(){
//partial class JSClock {         
   var _timeID = null;
   var _timeRunning = false;
   var _info;
   var _this;
   //构造函数
   function JSClock(elementId) {
     _this = this;
    _info =  document.getElementById(elementId);
   }
   JSClock.PRototype.getDateTime = function(){};//因为具体显示需求不同所以没实现
   JSClock.prototype.run = function() {
    var now = {};
    var tick = new Date();
    now.hours = tick.getHours();
    now.minutes = tick.getMinutes();
    now.seconds = tick.getSeconds();
    now.day = tick.getDay();
    now.month = tick.getMonth()+1;
    now.date = tick.getDate();
    now.year = tick.getYear();
    if (now.year < 1000) now.year += 1900;
    _timeRunning = true;
    _info.innerHTML = _this.getDateTime(now);
    _timeID = setTimeout(arguments.callee,1000);
   };
  
   JSClock.prototype.stop = function(){
     if(!_timeRunning)return
     clearTimeout(_timeID);
     _timeRunning = false;
   };
//}
   window.JSClock = JSClock;
})();


//partial class JSClock{
   //virtual
   JSClock.prototype.getDateTime = function(now){
    var current,weekday;
    current = now.year + "年" + now.month + "月" + now.date + "日 " + ((now.hours >12) ? now.hours -12 :now.hours);
    current += ((now.minutes < 10) ? ":0" : ":") + now.minutes;
    current += ((now.seconds < 10) ? ":0" : ":") + now.seconds;
    current += (now.hours >= 12) ? " (下午)" : " (上午)";
    if(now.day==0) weekday = " 星期日";
    if(now.day==1) weekday = " 星期一";
    if(now.day==2) weekday = " 星期二";
    if(now.day==3) weekday = " 星期三";
    if(now.day==4) weekday = " 星期四";
    if(now.day==5) weekday = " 星期五";
    if(now.day==6) weekday = " 星期六";
    current += weekday;
    return current;
   };
//}


//测试
var time = new JSClock("test");
time.run();
//运行结果会在ID为test的元素中实时显示当前时间格式如:

//2010年2月6日 0:13:53 (上午) 星期六

Tags:面向 对象 JS

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接