1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title></title>
6 </head>
7 <body>
8 <h1>结算程序</h1>
9 <p>
10 <input type="text" placeholder="原价" id="money" />
11 </p>
12 <p>
13 <select id="level">
14 <option value="0">普通顾客</option>
15 <option value="1">VIP会员</option>
16 <option value="2">金卡会员</option>
17 <option value="3">砖石会员</option>
18 </select>
19 </p>
20 <p>
21 <input type="button"id="btn" value="结算" />
22 </p>
23 <p id="result"></p>
24 <script src="test_3es6.js" type="text/javascript" charset="utf-8"></script>
25 </body>
26 </html>
 1 /*
2 //定义类
3 class Plane{
4 constructor(speed) {
5 this.speed=speed;//变量放在构造器中
6 }
7 fly(){
8 console.log("飞行速度"+this.speed);
9 }
10 }
11 var plane=new Plane(800);
12 plane.fly();
13 //类继承
14 class FightPlane extends Plane{
15 fly(){
16 console.log("战斗机速度"+this.speed);
17 }
18 }
19 plane =new FightPlane(2000);//多态
20 plane.fly();
21 */
22
23 /*
24 *正常情况下普通顾客不享受打折优惠,VIP会员享受9.6折优惠,金卡会员享受9.2折优惠,砖石会员享受8.5折优惠。
25 * 双十一当天,普通顾客享受满200返50代金券;
26 * VIP会员享受9折优惠,购物满500,赠送100元餐券;
27 * 金卡会员享受8.5折优惠,购物满300元,赠送100元代金券;
28 * 砖石会员享受8折优惠,购物满200赠送100代金券。
29 */
30 class Calculator {
31 handle(money, level) { //处理
32 if(level == 0) {
33 return money;
34 } else if(level == 1) {
35 return money * 0.96;
36 } else if(level == 2) {
37 return money * 0.92;
38 } else if(level == 3) {
39 return money * 0.85;
40 } else {
41 throw "会员等级错误";
42 }
43 }
44 }
45
46 class DoubleElevenCalculator extends Calculator {
47 handle(money, level) { //处理
48 if(level == 0) {
49 var num = Math.floor(money / 200);
50 return `实际需支付${money}元,赠送${num}张50元代金券`;
51 } else if(level == 1) {
52 var num = Math.floor(money / 500);
53 return `实际需支付${money*0.9}元,赠送${num}张100元餐券`
54 } else if(level == 2) {
55 var num = Math.floor(money / 300);
56 return `实际需支付${money*0.85}元,赠送${num}张100元代金券`;
57 } else if(level == 3) {
58 var num = Math.floor(money / 200);
59 return `实际需支付${money*0.8}元,赠送${num}张100元代金券`;
60 } else {
61 throw "会员等级错误";
62 }
63 }
64
65 }
66
67 var btn = document.querySelector("#btn");
68 btn.addEventListener("click", function() {
69 //var calculator = new Calculator();
70 var calculator = new DoubleElevenCalculator();
71 var money = document.querySelector("#money").value;
72 money = new Number(money);
73 var level = document.querySelector("#level").value;
74 level = new Number(level);
75 var temp = calculator.handle(money, level);
76 document.querySelector("#result").innerHTML = temp;
77 });

转载于:https://www.cnblogs.com/liuxuanhang/p/7800981.html

Js6利用class创建类的更多相关文章

  1. C# 利用反射根据类名创建类的实例对象

    “反射”其实就是利用程序集的元数据信息. 反射可以有很多方法,编写程序时请先导入 System.Reflection 命名空间. 1.假设你要反射一个 DLL 中的类,并且没有引用它(即未知的类型): ...

  2. 利用反射创建User类的对象

    package com.bjpowernode; public class User { private int age; public String name; public void m1() { ...

  3. 读取多张MNIST图片与利用BaseEstimator基类创建分类器

    读取多张MNIST图片 在读取多张MNIST图片之前,我们先来看下读取单张图片如何实现 每张数字图片大小都为28 * 28的,需要将数据reshape成28 * 28的,采用最近邻插值,如下 def ...

  4. 【转】C# 利用反射根据类名创建类的实例对象

    原文地址:https://www.cnblogs.com/feiyuhuo/p/5793606.html “反射”其实就是利用程序集的元数据信息. 反射可以有很多方法,编写程序时请先导入 System ...

  5. Oracle Sales Cloud:管理沙盒(定制化)小细节1——利用公式创建字段并显示在前端页面

    Oracle Sales Cloud(Oracle 销售云)是一套基于Oracle云端的CRM管理系统.由于 Oracle 销售云是基于 Oracle 云环境的,它与传统的管理系统相比,显著特点之一便 ...

  6. java中的反射,知道类名创建类,还可以设置私有属性的值

    刚刚学到了反射,感觉反射的功能好强大,所以想写篇博客记录下自己的学习成果. 利用反射来创建对象. Class c1=Class.forName("test.Person");//通 ...

  7. Creating Classes 创建类

    The dojo/_base/declare module is the foundation of class creation within the Dojo Toolkit. declare a ...

  8. java中利用JFrame创建窗体 【转】

    1. 一个简单的swing public class Test(){ public static void main(String[] args){ JFrame frame = new JFrame ...

  9. C# 反射 通过类名创建类实例

    “反射”其实就是利用程序集的元数据信息. 反射可以有很多方法,编写程序时请先导入 System.Reflection 命名空间. 1.假设你要反射一个 DLL 中的类,并且没有引用它(即未知的类型): ...

随机推荐

  1. 家庭版记账本app开发完成

    经过这几天关于android的相关学习,对于家庭版记账本app以及开发结束. 实现的功能为:用户的注册.登录.添加支出账单.添加收入账单.显示所有的该用户的账单情况(收入和支出).生产图表(直观的显示 ...

  2. Android 添加键值并上报从驱动到上层

    转载:https://blog.csdn.net/weixin_43854010/article/details/94390803 Android 添加键值并上报从驱动到上层 平台 :RK3288 O ...

  3. (js描述的)数据结构[树结构之红黑树](13)

    1.二叉送搜索树的缺点: 2.红黑树难度: 3.红黑树五大规则: 4.红黑树五大规则的作用: 5.红黑树二大变换: 1)变色 2)旋转 6.红黑树的插入五种变换情况: 先声明--------插入的数据 ...

  4. Linux 压缩备分篇(一 备份数据)

    备份文件                dump dump: -S                    仅列出待备份数据需要多少磁盘空间才能够备份完毕 -u                    将 ...

  5. Python zipfile模块学习

    转载自https://www.j4ml.com/t/15270 import zipfile import os from zipfile import ZipFile class ZipManage ...

  6. C++语言实现双向链表

    这篇文章是关于利用C++模板的方式实现的双向链表以及双向链表的基本操作,在之前的博文C语言实现双向链表中,已经给大家分析了双向链表的结构,并以图示的方式给大家解释了双向链表的基本操作.本篇文章利用C+ ...

  7. HTTP协议经典面试题整理及答案详解

    无论你是Java.PHP开发者,还是运维人员,只要从事互联网行业,面试时都可能被问到HTTP协议相关知识.历时多天的呕心沥血,为你总结了HTTP协议的经典面试题.由于涉及内容比较繁杂不方便记忆,建议收 ...

  8. docker-compose 基于Dockerfile 安装并启动redis容器的血案

    前言 为了实现"一键部署"的目的,我采用Dockerfile 和 docker-compose来实现自己的目的.这个过程中,我怎么也无法启动自己的redis-server服务. 目 ...

  9. 数组的增加与删除(push、pop、unshift、shift)

    1.    数组增删和换位置(原数组将被修改) push()  //在数组最后面插入项,返回数组的长度 数组1改后的长度  =  数组1.push(元素1); pop()    //取出数组中的最后一 ...

  10. 传智博客2015年最新版iOS基础视频_最适合初学者入门

    视频介绍: 本视频是iOS学院精心录制的免费精华版iOS语言基础视频,该视频特点在于最大程度保证了知识点的完整性,按知识点进行视频录制,每个视频控制在20分钟左右,不会使学生产生疲劳,授课讲究通俗易懂 ...