ES6新特性使用小结(五)
十二、class 与 extends
①、类的基本定义和生成实例
{
class Parent{
constructor(name='Lain'){ //定义构造函数
this.name = name;
}
}
let a = new Parent('Mayu'); //生成实例
console.log(a); //Parent {name: "Mayu"}
//继承
class Child extends Parent{ //通过 关键字 extends 实现继承
}
let b = new Child();
console.log(b) //Child {name: "Lain"} 继承了Parent 并使用了Parent的默认值
}
②、通过 extends 实现继承
{
class Parent{
constructor(name='Lain'){
this.name = name;
}
}
//继承
class Child extends Parent{ //通过 关键字 extends 实现继承
constructor(name='child'){ //定义了子类的默认值
super(name); //使用 super方法传递参数
this.type='child'; // **在继承关系中 如果使用了super 一定要将 super方法放在第一行
}
}
let b = new Child();
console.log(b) //Child {name: "child", type: "child"} 继承了Parent 并使用了Child的默认值
}
③、class 中的 getter 和 setter
{
class Parent{
constructor(name='Lain'){
this.name = name;
}
get longName(){ // ** 这里是属性 而不是方法
return 'Hello '+this.name;
}
set longName(value){
this.name =value;
}
}
let c = new Parent();
console.log('getter',c.longName); //getter Hello Lain
c.longName = 'abc';
console.log('setter',c.longName); //setter Hello abc
}
④、class 中的 静态方法
{
class Parent{
constructor(name='Lain'){
this.name = name;
}
static tell(){ // 使用 关键字 static 定义静态方法
// *** 该方法不会被实例继承,而是直接通过类来调用,这就称为“静态方法”。
console.log('static');
}
}
Parent.tell(); //static
}
⑤、class 中的 静态属性
{
class Parent{
constructor(name='Lain'){
this.name = name;
}
static tell(){
console.log('static');
}
}
Parent.type ='test'; // 在 class 定义完毕后 在 类 上直接定义 静态方法 而不是在实例上
console.log('静态属性',Parent.type); //静态属性 test
}
ES6新特性使用小结(五)的更多相关文章
- ES6新特性使用小结(三)
九.数据类型 Symbol /* * Symbol 数据类型 概念: Symbol 提供一个独一无二的值 * */ { let a1 = Symbol(); let a2 = Symbol(); co ...
- ES6新特性使用小结(六)
十三.promise 异步编程 ①.使用 promise 模拟异步操作 { //ES5 中的 callback 解决 异步操作问题 let ajax = function (callback) { c ...
- ES6新特性使用小结(四)
十一.Proxy .Reflect ①.Proxy 的概念和常用方法 { let obj = { //1.定义原始数据对象 对用户不可见 time: '2017-09-20', name: 'net' ...
- ES6新特性使用小结(二)
六.Array 扩展 /* * Array Api Array.of 数组的构建 * */ { let arr = Array.of(, , , , , ); console.log(arr); // ...
- ES6新特性使用小结(一)
一.let const 命令 'use strict'; /*function test(){ //let a = 1; for(let i=1;i<3;i++){ console.log(i) ...
- ES6新特性概览
本文基于lukehoban/es6features ,同时参考了大量博客资料,具体见文末引用. ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony( ...
- ES6新特性之模板字符串
ES6新特性概览 http://www.cnblogs.com/Wayou/p/es6_new_features.html 深入浅出ES6(四):模板字符串 http://www.infoq.c ...
- Atitit js版本es5 es6新特性
Atitit js版本es5 es6新特性 Es5( es5 其实就是adobe action script的标准化)1 es6新特性1 Es5( es5 其实就是adobe action scrip ...
- ES6新特性:Proxy代理器
ES6新特性:Proxy: 要使用的话, 直接在浏览器中执行即可, node和babel目前还没有Proxy的polyfill;,要使用的话,直接在浏览器中运行就好了, 浏览器的兼容性为:chrome ...
随机推荐
- 1.1 BASIC PROGRAMMING MODEL(算法 Algorithms 第4版)
1.1.1 private static void exercise111() { StdOut.println("1.1.1:"); StdOut.println((0+15)/ ...
- ubuntu上swift开发学习2
使用包管理器(package manager)创建一个可执行的项目 1. 创建一个Hello目录,然后进入目录 $ mkdir Hello $ cd Hello 2. 使用包初始化命令,参数表示创建一 ...
- 深入理解JVM - 线程安全与锁优化 - 第十三章
线程安全 当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方法进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那么这个对 ...
- html中css的三种样式
在html中定义CSS样式的方法有三种,新建CSS文件 使用link 关联 这种是最常用的外部引用样式,第二种讲样式写在 head 头部里面 这种是页面样式 ,第三中样式直接写在行内 style里面 ...
- 搭建LoadRunner中的场景(三)场景的执行计划
所谓场景操作,包括初始化用户组.启动用户组各用户以及停止虚拟用户的全过程.依据设置不同,执行过程中可以最多有5类操作,分别是启动用户组(start group).初始化(Initialize).启动虚 ...
- dynamic 作为参数传入另一个程序集,获取值
dynamicOBJ.GetType().GetProperty("key").GetValue(dynamicOBJ, null)
- 集训Day4
在bzoj刷了好几天杂题感觉手感不是很好 继续回来集训一下 好几天没更新了啊... bzoj1875 一个无向图,一个人要从起始点走$t$步走到终点,不能沿着刚走过来那条边回去,问有多少种走法 $m ...
- POJ3237 Tree(树剖+线段树+lazy标记)
You are given a tree with N nodes. The tree’s nodes are numbered 1 through N and its edges are numbe ...
- poj3067Japan——树状数组查找逆序对
题目:http://poj.org/problem?id=3067 利用树状数组查找逆序对. 代码如下: #include<iostream> #include<cstdio> ...
- 湖南程序设计竞赛赛题总结 XTU 1237 Magic Triangle(计算几何)
这个月月初我们一行三人去湖南参加了ccpc湖南程序设计比赛,虽然路途遥远,六月的湘潭天气燥热,不过在一起的努力之下,拿到了一块铜牌,也算没空手而归啦.不过通过比赛,还是发现我们的差距,希望这几个月自己 ...