zoukankan      html  css  js  c++  java
  • 面向对象的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 (上午) 星期六


  • 相关阅读:
    Svn如何使用,有什么作用?
    Unity脚本基础Day02
    unity设计模式-----责任链模式
    LitJson ---json的创建和解析
    Mesh编程——三角形,多边形,正方体,园形,圆环
    unity基础逻辑题
    unity——UI拖拽实现拼图
    unity:倒计时
    UGUI Toggle的监听事件绑定
    UnityGUI系统之InputField
  • 原文地址:https://www.cnblogs.com/rentj1/p/1664720.html
Copyright © 2011-2022 走看看