class的好处就是让继承的实现更加简单,语法简单,理解起来也不复杂,但是现在只能做测试使用,项目中需要用Babel工具。

<!DOCTYPE html>
<html> <head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Examples</title>
<meta name="description" content="">
<meta name="keywords" content="">
<link href="" rel="stylesheet">
<script src="jquery2.3.0.js"></script>
</head> <body>
<ul class="oUl">
<li>张三:</li>
<li>李四:</li>
<li>王二:</li>
</ul>
<ul class="oDiv">
<li id="1">
<h3>我要改剧本,不让~~</h3>
<div>
</div>
</li>
<li id="2">
<h3>悬崖上有桥么,有?没有~ </h3>
<div>
</div>
</li>
<li id="3">
<h3>你敢打坏我的灯?不租~ </h3>
<div>
</div>
</li>
</ul>
<script>
/*function ChangeToEidt(id,value,parentElement){
this.id = id;
this.value = value;
this.parentElement = parentElement;
};*/ class ChangeToEidt {
constructor(id, value, parentEle) {
this.id = id;
this.value = value;
this.parentEle = parentEle;
this.initElements();
this.initEvents()
} initElements() {
this.text = $("<span / >");
this.text.html(this.value)
this.edit = $("<input type='text' />");
this.btnDiv = $("<div style='display:inline-block' />");
this.saveBtn = $("<input type='button' value='保存' />");
this.cancelBtn = $("<input type='button' value='取消' />"); this.btnDiv.append(this.saveBtn).append(this.cancelBtn);
this.parentEle.append(this.text).append(this.edit).append(this.btnDiv);
this.convertToReadable();
}
initEvents() {
var that = this;
this.text.click(function() {
that.convertToEditable();
});
this.cancelBtn.click(function() {
that.cancel();
});
this.saveBtn.click(function() {
that.save();
});
} convertToEditable() {
this.text.hide();
this.edit.show();
this.btnDiv.show();
this.edit.focus();
if (this.value == this.getValue()) {
this.edit.val("")
}
} convertToReadable() {
this.text.show();
this.edit.hide();
this.btnDiv.hide();
} cancel() {
this.convertToReadable();
} save() {
this.setValue(this.edit.val());
this.text.html(this.getValue());
this.convertToReadable();
}
setValue() {
this.value = value;
} getValue() {
return this.value;
}
} class ChangeToAreaEidt extends ChangeToEidt {
constructor(id, value, parentEle) {
super(id, value, parentEle)
} initElements() {
this.text = $("<span / >");
this.text.html(this.value);
this.edit = $("<textarea style='width:315px;height:70px;' />");
this.btnDiv = $("<div style='display:inline-block' />");
this.saveBtn = $("<input type='button' value='保存' />");
this.cancelBtn = $("<input type='button' value='取消' />"); this.btnDiv.append(this.saveBtn).append(this.cancelBtn);
this.parentEle.append(this.text).append(this.edit).append(this.btnDiv);
this.convertToReadable();
}
} $(".oUl li").each(function() {
new ChangeToEidt($(this).attr("id"), "请输入成绩...", $(this));
}); $(".oDiv li div").each(function() {
new ChangeToAreaEidt($(this).attr("id"), "请留1言...", $(this));
});
</script>
</body> </html>

ES6 class继承的简单应用的更多相关文章

  1. ES5和ES6的继承对比

    ES5的继承实现,这里以最佳实践:寄生组合式继承方式来实现.(为什么是最佳实践,前面有随笔讲过了,可以参考) function Super(name) { this.name = name; } Su ...

  2. ES5的继承和ES6的继承有什么区别?让Babel来告诉你

    如果以前问我ES5的继承和ES6的继承有什么区别,我一定会自信的说没有区别,不过是语法糖而已,充其量也就是写法有区别,但是现在我会假装思考一下,然后说虽然只是语法糖,但也是有点小区别的,那么具体有什么 ...

  3. 对于js原型和原型链继承的简单理解(第三种,复制继承)

    复制继承:简单理解,就是把父对象上的所有属性复制到自身对象上: function Cat(){ this.climb = function(){ alert("我会爬树"); } ...

  4. 详解ES5和ES6的继承

    ES5继承 构造函数.原型和实例的关系:每一个构造函数都有一个原型对象,每一个原型对象都有一个指向构造函数的指针,而每一个实例都包含一个指向原型对象的内部指针, 原型链实现继承 基本思想:利用原型让一 ...

  5. 用仿ActionScript的语法来编写html5——第四篇,继承与简单的rpg

    第四篇,继承与简单的rpg 这次用继承自LSprite的类来实现简单的rpg的demo先看一下最后的代码与as的相似度 var backLayer; //地图 var mapimg; //人物 var ...

  6. ES5和ES6的继承

    ES5继承 构造函数.原型和实例的关系:每一个构造函数都有一个原型对象,每一个原型对象都有一个指向构造函数的指针,而每一个实例都包含一个指向原型对象的内部指针, 原型链实现继承 基本思想:利用原型让一 ...

  7. ES6 class继承

    ES6 class继承 class类的继承 class可以通过extends关键字实现继承,这笔ES5的通过修改原型连实现继承要清晰和方便很多. class Point{ } class ColorP ...

  8. ES6 class 继承 与面向对象封装开发简单实例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. ES5与ES6的继承

    JavaScript本身是一种神马语言: 提到继承,我们常常会联想到C#.java等面向对象的高级语言(当然还有C++),因为存在类的概念使得这些语言在实际的使用中抽象成为一个对象,即面向对象.Jav ...

随机推荐

  1. Java 从入门到进阶之路(二十六)

    在之前的文章我们介绍了一下 Java 中的  集合框架中的Collection 的子接口 List,本章我们来看一下 Java 集合框架中的Collection 的子接口 Queue. 在之前我们讲 ...

  2. Python3笔记014 - 3.5 跳转语句

    第3章 流程控制语句 3.5 跳转语句 1.break 语句 while 条件表达式1: 语句块1 if 条件表达式2: break for 迭代变量 in 对象: 语句块1 if 条件表达式: br ...

  3. LNMP(Linux+Nginx+MySQL+PHP) yum方式安装Redis

    一.环境信息 CentOS Linux release 8.1.1911 (Core) Redis server v=5.0.3 二.yum方式安装 1.添加EPEL仓库 sudo yum insta ...

  4. HDU 5963 朋友 题解

    题目 B君在围观一群男生和一群女生玩游戏,具体来说游戏是这样的: 给出一棵n个节点的树,这棵树的每条边有一个权值,这个权值只可能是0或1. 在一局游戏开始时,会确定一个节点作为根.接下来从女生开始,双 ...

  5. sql语句replace函数的使用

    SQL中的替换函数replace()使用 语法 REPLACE ( string_expression , string_pattern , string_replacement ) 参数 strin ...

  6. Activity启动流程分析

    我们来看一下 startActivity 过程的具体流程.在手机桌面应用中点击某一个 icon 之后,实际上最终就是通过 startActivity 去打开某一个 Activity 页面.我们知道 A ...

  7. LintCode笔记 - 8. 旋转字符串

    这一题相对简单,但是代码质量可能不是很好,我分享一下我的做题笔记以及做题过程给各位欣赏,有什么不足望各位大佬指出来 原题目,各位小伙伴也可以试着做一下 . 旋转字符串 中文English 给定一个字符 ...

  8. 06 drf源码剖析之权限

    06 drf源码剖析之权限 目录 06 drf源码剖析之权限 1. 权限简述 2. 权限使用 3.源码剖析 4. 总结 1. 权限简述 权限与身份验证和限制一起,决定了是否应授予请求访问权限. 权限检 ...

  9. 数据可视化之PowerQuery篇(六)PowerQuery技巧:批量合并Excel表的指定列

    本文来源于一个星友的问题,他有上百个Excel表格,格式并不完全一样,列的位置顺序也不同,但每个表都有几个共同列,这种情况下,能不能通过Power Query把这些表格共同的列批量合并呢? 当然是可以 ...

  10. bzoj3620似乎在梦中见过的样子

    bzoj3620似乎在梦中见过的样子 题意: 给出一个字符串,要求求出形如A+B+A的子串数量,且lenA≥k,lenB≥1.字符串长度≤15000,k≤100,所以字符长度为小写字母. 题解: 第一 ...