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 中的类,并且没有引用它(即未知的类型): ...
随机推荐
- 家庭版记账本app开发完成
经过这几天关于android的相关学习,对于家庭版记账本app以及开发结束. 实现的功能为:用户的注册.登录.添加支出账单.添加收入账单.显示所有的该用户的账单情况(收入和支出).生产图表(直观的显示 ...
- Android 添加键值并上报从驱动到上层
转载:https://blog.csdn.net/weixin_43854010/article/details/94390803 Android 添加键值并上报从驱动到上层 平台 :RK3288 O ...
- (js描述的)数据结构[树结构之红黑树](13)
1.二叉送搜索树的缺点: 2.红黑树难度: 3.红黑树五大规则: 4.红黑树五大规则的作用: 5.红黑树二大变换: 1)变色 2)旋转 6.红黑树的插入五种变换情况: 先声明--------插入的数据 ...
- Linux 压缩备分篇(一 备份数据)
备份文件 dump dump: -S 仅列出待备份数据需要多少磁盘空间才能够备份完毕 -u 将 ...
- Python zipfile模块学习
转载自https://www.j4ml.com/t/15270 import zipfile import os from zipfile import ZipFile class ZipManage ...
- C++语言实现双向链表
这篇文章是关于利用C++模板的方式实现的双向链表以及双向链表的基本操作,在之前的博文C语言实现双向链表中,已经给大家分析了双向链表的结构,并以图示的方式给大家解释了双向链表的基本操作.本篇文章利用C+ ...
- HTTP协议经典面试题整理及答案详解
无论你是Java.PHP开发者,还是运维人员,只要从事互联网行业,面试时都可能被问到HTTP协议相关知识.历时多天的呕心沥血,为你总结了HTTP协议的经典面试题.由于涉及内容比较繁杂不方便记忆,建议收 ...
- docker-compose 基于Dockerfile 安装并启动redis容器的血案
前言 为了实现"一键部署"的目的,我采用Dockerfile 和 docker-compose来实现自己的目的.这个过程中,我怎么也无法启动自己的redis-server服务. 目 ...
- 数组的增加与删除(push、pop、unshift、shift)
1. 数组增删和换位置(原数组将被修改) push() //在数组最后面插入项,返回数组的长度 数组1改后的长度 = 数组1.push(元素1); pop() //取出数组中的最后一 ...
- 传智博客2015年最新版iOS基础视频_最适合初学者入门
视频介绍: 本视频是iOS学院精心录制的免费精华版iOS语言基础视频,该视频特点在于最大程度保证了知识点的完整性,按知识点进行视频录制,每个视频控制在20分钟左右,不会使学生产生疲劳,授课讲究通俗易懂 ...