Js6利用class创建类
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创建类的更多相关文章
- C# 利用反射根据类名创建类的实例对象
“反射”其实就是利用程序集的元数据信息. 反射可以有很多方法,编写程序时请先导入 System.Reflection 命名空间. 1.假设你要反射一个 DLL 中的类,并且没有引用它(即未知的类型): ...
- 利用反射创建User类的对象
package com.bjpowernode; public class User { private int age; public String name; public void m1() { ...
- 读取多张MNIST图片与利用BaseEstimator基类创建分类器
读取多张MNIST图片 在读取多张MNIST图片之前,我们先来看下读取单张图片如何实现 每张数字图片大小都为28 * 28的,需要将数据reshape成28 * 28的,采用最近邻插值,如下 def ...
- 【转】C# 利用反射根据类名创建类的实例对象
原文地址:https://www.cnblogs.com/feiyuhuo/p/5793606.html “反射”其实就是利用程序集的元数据信息. 反射可以有很多方法,编写程序时请先导入 System ...
- Oracle Sales Cloud:管理沙盒(定制化)小细节1——利用公式创建字段并显示在前端页面
Oracle Sales Cloud(Oracle 销售云)是一套基于Oracle云端的CRM管理系统.由于 Oracle 销售云是基于 Oracle 云环境的,它与传统的管理系统相比,显著特点之一便 ...
- java中的反射,知道类名创建类,还可以设置私有属性的值
刚刚学到了反射,感觉反射的功能好强大,所以想写篇博客记录下自己的学习成果. 利用反射来创建对象. Class c1=Class.forName("test.Person");//通 ...
- Creating Classes 创建类
The dojo/_base/declare module is the foundation of class creation within the Dojo Toolkit. declare a ...
- java中利用JFrame创建窗体 【转】
1. 一个简单的swing public class Test(){ public static void main(String[] args){ JFrame frame = new JFrame ...
- C# 反射 通过类名创建类实例
“反射”其实就是利用程序集的元数据信息. 反射可以有很多方法,编写程序时请先导入 System.Reflection 命名空间. 1.假设你要反射一个 DLL 中的类,并且没有引用它(即未知的类型): ...
随机推荐
- 各种版本docker下载的中国开源地址
最近在群里听说Docker很火,于是自己抱着试试的态度,想玩玩,可是遇到了一些问题,记录下来,方便备忘,也方便防止大家被坑. 我的虚拟机装的是centos 6.5,百度了好多教程,丫的,都不解释,就一 ...
- 一分钟搞定Java高频面试题
一分钟搞定Java高频面试题 一.变量赋值和计算 题目: public static void main(String[] args) { int i = 1; i = i++; int j = i+ ...
- Python pip高级用法
1.pip 高级用法为了便于用户安装和管理第三方库和软件,越来越多的编程语言拥有自己的包管理工 具,如 nodejs 的 npm, ruby 的 gem. Python 也不例外,现在 Python ...
- web网页html基础
列表标签 ul:定义一个列表 li:定义列表中的条目 图片标签 Img:用来向网页中插入一张图片 Src:指定图片所在的路径 Width:指定图片宽度 (% px) Height:指定图片高度 (% ...
- C#多线程(6):线程通知
目录 AutoRestEvent 类 常用方法 一个简单的示例 解释一下 复杂一点的示例 解释 回顾一下,前面 lock.Monitor 部分我们学习了线程锁,Mutex 部分学习了进程同步,Sema ...
- 打印图片的属性和实现另存图片功能以及使用numpy
上一篇我们已经学了如何读取图片的功能了以及和opencv的环境搭建了,今天接着来学习,哈哈哈,今天刚好五一,也没闲着,继续学习. 1. 首先我们来实现打印出图片的一些属性功能, 先来看一段代码: im ...
- 21-Java-Hibernate框架(一)
一.Hibernate了解 Hibernate框架是Java持久层的框架,是Gavin King发明的,2001年发布的,JBoss公司的产品,2003年进入市场. Hibernate是基于对象来操作 ...
- stand up meeting 1-4
放假归来第一天,组内成员全员到齐,满血复活. 今天主要对下边最后半个月的任务做了规划和分配. UI的优化部分在假期前静雯已经完成在了UI分支上,国庆会在这两天把UI设计的更新merge到master分 ...
- C++ 11 +,开坑。
最近换新工作了.工作中需要用到高端的c++11的一些操作,至于我后面又plus一下还是因为可能是c++14或者17中提供的一些操作.反正都是c++11以及之后的一些特性. 首先,今天看一下关于函数模板 ...
- 它来了!它来了!Seata Go Client 它来了!!!
抱歉抱歉,这个标题一看就是个很标题党的标题.本文所述的 Seata Go Client 只支持 TCC 模式,并不像 Java 版的能支持到 AT 模式.SAGA 模式.XA 模式,聊胜于无.说到这里 ...