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 中的类,并且没有引用它(即未知的类型): ...
随机推荐
- Linux基础:Day04
进程管理1.操作系统基础 调用:kernel通过给应用程序提供system call方式来提供硬件资源: 注意:这个应用程序也包括库文件: 库文件是运行在ring 0上的一段程序代码,不对客户直接 ...
- docker下安装centos,并在其上搭建lnmp环境
一.安装CentOs容器 1.进入docker下载CentOs,这里我使用的CentOs6.8 docker pull centos:6.8 2.创建容器 sudo docker run --priv ...
- Java第六天,API中常用的类,StringBuffer、StringBuilder、包装类、System类的使用
System (1)这个类中有很多可以获取系统信息的类. public class SystemLearn { public static void main(String[] args) { lon ...
- 中阶 d04 xml 概念及使用
idea新建xml文件https://www.jianshu.com/p/b8aeadae39b0 或https://blog.csdn.net/Hi_Boy_/article/details/804 ...
- 使用ffprobe 查询wav文件信息
使用ffprobe 查询wav文件信息 安装 安装过程和ffmepg相同不在赘述 不带参数查询文件信息 ffprobe ZH_biaobei_标准合成_甜美女声_楠楠_5_5_5_6_1_4047db ...
- AJ学IOS 之BLOCK的妙用_利用block实现链式编程
AJ分享,必须精品 一:场景 我们有个对象人,他有两个方法,一个是学习study,一个是跑步run, 这个人有个怪癖,跑完步之后必须学习,为了实现这个方法并且能调用方便,我们让跑步和学习都回返回自己这 ...
- Hadoop学习笔记(1)-Hadoop在Ubuntu的安装和使用
由于小编在本学期有一门课程需要学习hadoop,需要在ubuntu的linux系统下搭建Hadoop环境,在这个过程中遇到一些问题,写下这篇博客来记录这个过程,并把分享给大家. Hadoop的安装方式 ...
- Daily Scrum 12/24/2015
Process: Zhaoyang: Some UI change and compile the Caffe in the IOS. Yandong: Do some code integratio ...
- django.template.exceptions.TemplateDoesNotExist: login.html报错
前言 在某一次按以前的步骤使用Django “django.template.exceptions.TemplateDoesNotExist: login.html”错误,在以为是html文件出 ...
- 词向量表示:word2vec与词嵌入
在NLP任务中,训练数据一般是一句话(中文或英文),输入序列数据的每一步是一个字母.我们需要对数据进行的预处理是:先对这些字母使用独热编码再把它输入到RNN中,如字母a表示为(1, 0, 0, 0, ...