ES6 class继承的简单应用
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继承的简单应用的更多相关文章
- ES5和ES6的继承对比
ES5的继承实现,这里以最佳实践:寄生组合式继承方式来实现.(为什么是最佳实践,前面有随笔讲过了,可以参考) function Super(name) { this.name = name; } Su ...
- ES5的继承和ES6的继承有什么区别?让Babel来告诉你
如果以前问我ES5的继承和ES6的继承有什么区别,我一定会自信的说没有区别,不过是语法糖而已,充其量也就是写法有区别,但是现在我会假装思考一下,然后说虽然只是语法糖,但也是有点小区别的,那么具体有什么 ...
- 对于js原型和原型链继承的简单理解(第三种,复制继承)
复制继承:简单理解,就是把父对象上的所有属性复制到自身对象上: function Cat(){ this.climb = function(){ alert("我会爬树"); } ...
- 详解ES5和ES6的继承
ES5继承 构造函数.原型和实例的关系:每一个构造函数都有一个原型对象,每一个原型对象都有一个指向构造函数的指针,而每一个实例都包含一个指向原型对象的内部指针, 原型链实现继承 基本思想:利用原型让一 ...
- 用仿ActionScript的语法来编写html5——第四篇,继承与简单的rpg
第四篇,继承与简单的rpg 这次用继承自LSprite的类来实现简单的rpg的demo先看一下最后的代码与as的相似度 var backLayer; //地图 var mapimg; //人物 var ...
- ES5和ES6的继承
ES5继承 构造函数.原型和实例的关系:每一个构造函数都有一个原型对象,每一个原型对象都有一个指向构造函数的指针,而每一个实例都包含一个指向原型对象的内部指针, 原型链实现继承 基本思想:利用原型让一 ...
- ES6 class继承
ES6 class继承 class类的继承 class可以通过extends关键字实现继承,这笔ES5的通过修改原型连实现继承要清晰和方便很多. class Point{ } class ColorP ...
- ES6 class 继承 与面向对象封装开发简单实例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ES5与ES6的继承
JavaScript本身是一种神马语言: 提到继承,我们常常会联想到C#.java等面向对象的高级语言(当然还有C++),因为存在类的概念使得这些语言在实际的使用中抽象成为一个对象,即面向对象.Jav ...
随机推荐
- Java基础之Synchronized原理
思维导图svg: https://note.youdao.com/ynoteshare1/index.html?id=eb05fdceddd07759b8b82c5b9094021a&type ...
- 八.django日志配置
Django 日志 Django 使用Python 内建的logging 模块打印日志,Python 的logging 配置由四个部分组成: 记录器 —— Logger 处理程序 —— Handler ...
- dll备份注意事项
test.dll20161111和test.dll同目录的时候,会报错!因为这样跟test1.dll(只是重名民)的效果是一样的,都会报错的. 同目录的情况下,应该改成test.dll.ddd. 为了 ...
- JVM源码分析之JVM启动流程
原创申明:本文由公众号[猿灯塔]原创,转载请说明出处标注 “365篇原创计划”第十四篇. 今天呢!灯塔君跟大家讲: JVM源码分析之JVM启动流程 前言: 执行Java类的main方法,程序就能运 ...
- 什么是X-UA-Compatible?X-UA-Compatible的作用
代码 <meta http-eqiv="X-UA-Compatible" content="ie=edge"> 什么是X-UA-Compatible ...
- #pragma comment(linker,"/SECTION:shared,RWS")
Windows在一个Win32程序的地址空间周围筑了一道墙.通常,一个程序的地址空间中的数据是私有的,对别的程序而言是不可见的.但是执行多个执行实体表示了程序的所有执行实体之间共享数据是毫无问题的.当 ...
- day07 流程控制
灵魂三问: 什么是?为什么要有?怎么用? 目录 一 分支结构 1.1 什么是分支结构 1.2 为什么要有分支结构 1.3 怎么用分支结构 1.3.1 if语法 二 循环结构 2.1while循环 一 ...
- day06 可变不可变类型
1.可变不可变类型 可变类型 定义:值改变,id不变,改的是原值 不可变类型 定义:值改变,id也变了,证明是产生了新的值没有改变原值 验证 x = 10 print(id(x)) x = 11 pr ...
- scrapy 基础组件专题(四):信号运用
一.scrapy信号使用的简单实例 import scrapy from scrapy import signals from ccidcom.items import CcidcomItem cla ...
- TortoiseGit 解决冲突的两种方法
一.冲突发生原因: 用户A 有新提交 用户B 没有pull, 写新代码 ,pull , 提示有冲突 Solution: 1: stash save(把自己的代码隐藏存起来) -> 重新pul ...