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;
}();

s面向对象的写法的更多相关文章

  1. javascript面向对象的写法及jQuery面向对象的写法

    文章由来:jQuery源码学习时的总结 在JS中,一般的面向对象的写法如下: function Cao(){}//定义一个构造函数 Cao.prototype.init = function(){}/ ...

  2. javascript面向对象的写法03

    javascript面向对象的写法03 js一些基础知识的说明 prototype 首先每个js函数(类)都有一个prototype的属性,函数是类.注意类有prototype,而普通对象没有. js ...

  3. AS3.0面向对象的写法,类和实例

    package /*package是包路径,例如AS文件在ActionScript文件夹下,此时路径应为package ActionScript.必须有的.package中只能有一个class,在一个 ...

  4. javascript面向对象的写法02

    面向对象特性的初步实现 1.封装 利用作用域封装变量 作用域的概念是一样的,for语句,if语句等这些作用域内定义的变量只能作用域内访问,函数内定义的变量只能函数内访问. function Class ...

  5. javascript面向对象的写法01

    类和对象 其他面向对象的语言类的语法是内置的,自然而然的事.javascript中有对象,但没有类的语法,类的实现需要模拟出来. 只需要把对象想成一个容器,里面存放一些属性或方法,把类想象成一个对象的 ...

  6. jQuery插件写法总结以及面向对象方式写法总结

    前两个是jQuery插件,后面2个是以对象的形式开发,都类似. 写法一 (function($, window){ // 初始态定义 var _oDialogCollections = {}; // ...

  7. jQuery面向对象的写法

    定义的写法 //构造函数 function test(){ //construct code } //初始化方法 test.prototype.init = function(){ //init co ...

  8. [转]jQuery插件写法总结以及面向对象方式写法

    本文转自:http://www.xuanfengge.com/jquery-plug-in-written-summary-and-summary-of-writing-object-oriented ...

  9. js中面向对象的写法

    function Circle(r){ this.r = r; }//构造(实例对象的)函数[思路二:这是一个类] Circle.PI = 3.14159; //属性 Circle.prototype ...

随机推荐

  1. 21天打造分布式爬虫-Selenium爬取拉钩职位信息(六)

    6.1.爬取第一页的职位信息 第一页职位信息 from selenium import webdriver from lxml import etree import re import time c ...

  2. Django--models--多表操作

    一 创建模型 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者模型之间是一对一的关 ...

  3. redis3.0集群部署和测试

    redis3.0集群部署和测试 环境介绍 两台Centos7的虚拟机模拟6个节点,A台3个master节点,B台3个slave节点A地址:172.16.81.140B地址:172.16.81.141r ...

  4. 使用maven构建多模块项目,分块开发

    在多人使用Maven协作开发项目时,尤其是稍微上点规模的项目,每个RD的工作都细分到具体功能和模块,有些模块甚至还要单独部署. 我们假设有这样一个商城项目,包括以下几个模块: 商城前台(shop) 管 ...

  5. kdump内核转储

    目录 CentOS 7.5 配置Kdump 安装Kdump 安装Kdump图形化 配置保留内存 配置kdump类型 核心转储到本地 核心转储到设备 使用NFS指定核心转储 使用SSH指定核心转储 配置 ...

  6. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(二十):服务熔断(Hystrix、Turbine)

    在线演示 演示地址:http://139.196.87.48:9002/kitty 用户名:admin 密码:admin 雪崩效应 在微服务架构中,由于服务众多,通常会涉及多个服务层级的调用,而一旦基 ...

  7. 一、Windows下Git的安装与配置

    一.下载Git安装包 1.打开Git的官方网站:https://git-scm.com/ 2.找到下载页:https://git-scm.com/downloads 3.找到Windows版本下载页面 ...

  8. 深度学习论文翻译解析(一):YOLOv3: An Incremental Improvement

    论文标题: YOLOv3: An Incremental Improvement 论文作者: Joseph Redmon Ali Farhadi YOLO官网:YOLO: Real-Time Obje ...

  9. windows7安装flask-mysqldb遇到的坑

    最近在windows环境上搭建flask使用环境,遇到过很多坑,这次就记录下安装flask-mysqldb所遇到的坑. 正常逻辑是使用pip install flask-mysqldb进行安装.但是会 ...

  10. 基于tcp协议下粘包现象和解决方案,socketserver

    一.缓冲区 每个 socket 被创建后,都会分配两个缓冲区,输入缓冲区和输出缓冲区.write()/send() 并不立即向网络中传输数据,而是先将数据写入缓冲区中,再由TCP协议将数据从缓冲区发送 ...