s面向對象的寫法

js面向對象的寫法
一、在html中引入該js文件,使用時:

<script>
    var BuyBw8Product = new buyBw8Product();
</script>

二、一般寫一個較大的模塊的js代碼時,採用這種方法寫js

新建一個js,內容結構如下:

/**
 * create by wkk
 * 描述:***
 */
!function(){
    function b(){
        var that = this;
        //當前是否到期集合
        this.moduleIsExpired = {
            ticketIsExpired : $("#ticketIsExpired"),
            ccIsExpired     : $("#ccIsExpired"),
            imIsExpired     : $("#imIsExpired")
        };
        //工單購買坐席數的change事件
        $("#ticketSeatNum").on('change', (function(){
            var ticketSeatNum = $(this).val() ? $(this).val() : 0;
            if(parseInt(ticketSeatNum) <= 0){
                alert('請填寫正確的工單購買坐席數');
                that.disableBuyButton();
                // 清空工單的金額,新計算餘額
                that.emptyMoney('ticket');
                return false;
            }
            //購買工單週期
            var ticketSeatYear = parseInt($(that.SeatYearSelect.ticketSeatYear).val());
            //不存在週期,表示不過期並且原有坐席數不爲0
            if($("#ticketSeatYear").length <= 0){
                //計算新的週期
                var ticketCurExpireTime = $(that.allCurExpireTime.ticketCurExpireTime).text();
                //從今天到到期日期的天數差值
                var todayDate = that.getTodayDate();
                var expireTimeDays = that.DateDiff(todayDate, ticketCurExpireTime);
                var ticketSeatYear = (parseInt(expireTimeDays)/365).toFixed(8);
            }
            if(ticketSeatYear > 0){
                //計算工單的金額
                var ticketPrice = $(that.productPrice.ticketPrice).text();
                //四捨五入->向下取整
                var ticketTotalAmount = Math.floor(that.calcAmount(ticketSeatNum, ticketPrice, ticketSeatYear));

                //顯示模塊金額和總金額以及折扣信息
                that.showModuleTotalAmountAndTotalMoneyAndDiscount('ticket', ticketTotalAmount, ticketSeatNum, ticketSeatYear);
            }
        }));
        /**
         * 比較兩個日期的大小,返回值比較大的日期
         * @param date1
         * @param date2
         * @returns date
         */
        this.tab = function (date1,date2){
            var oDate1 = new Date(date1);
            var oDate2 = new Date(date2);
            if(oDate1.getTime() >= oDate2.getTime()){
                return date1;
            } else {
                return date2;
            }
        }

        /**
         * 返回今天的日期  格式:2018-08-08
         */
        this.getTodayDate = function(){
            var myDate = new Date;
            var year = myDate.getFullYear();//獲取當前年
            var month = myDate.getMonth()+1;//獲取當前月
            var date = myDate.getDate();//獲取當前日
            return year+'-'+month+'-'+date;
        }

        /**
         * 計算天數差的函數,通用
         * @param sDate1
         * @param sDate2
         * @returns {Number}
         */
        this.DateDiff = function(sDate1,  sDate2){ //sDate1和sDate2是2006-12-18格式
            var  aDate,  oDate1,  oDate2,  iDays
            aDate  =  sDate1.split("-")
            oDate1  =  new  Date(aDate[1]  +  '-'  +  aDate[2]  +  '-'  +  aDate[0])    //轉換爲12-18-2006格式
            aDate  =  sDate2.split("-")
            oDate2  =  new  Date(aDate[1]  +  '-'  +  aDate[2]  +  '-'  +  aDate[0])
            iDays  =  parseInt(Math.abs(oDate1  -  oDate2)  /  1000  /  60  /  60  /24)    //把相差的毫秒數轉換爲天數
            return  iDays
        }
    }
    window.buyBw8Product = b;
}();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章