ES5中,生成对象通过构造函数
 function A(name,age){
this.name=name;
this.age=age
}
// 在A的prototype属性上定义一个test方法,即A生成的实例化对象的原型对象上的方法
A.prototype.test=function(){
return this.name+' '+this.age
} var a1=new A('apple',100)
console.log(a1.test())//apple 100
es6中,引入了class关键字,上面代码等价于下面:
 class B{
constructor(name,age){
this.name=name
this.age=age
}
test(){
return this.name+' '+this.age
}
}
var b1=new B('apple',100)
console.log(b1.test())//apple 100
需要注意的一点是:类和模块中默认使用的就是严格模式
 
class中的静态方法:static
 class C{
//没有写上constructor,默认会生成一个空的构造函数
static foo(){//注意:class里面函数不用添加function;
// 函数前面添加一个static关键字,表明这是一个静态方法,不会被实例继承,只能通过类来调用
console.log(100)
}
}
let c1=new C()
// c1.foo()报错
C.foo()//

继承:class可以通过extends关键字继承,对比es5修改原型链简单直观方便许多

注意:子类中如果写了构造函数contructor,那么一定要在里面使用super方法,同时只有使用了super方法才能使用this!当然如果没有构造函数,那么默认会生成一个构造函数
 class D{
constructor(age,email){
this.age=age
this.email=email
}
static test(){
console.log(10)
}
}
class E extends D{
constructor(age,email,weight){
super(age+'E',email+'E')//这里的super指向的是父类
this.weight=weight
}
}
let e1=new E(10,'100@qq.com',100)
console.log(e1)//E {age: "10E", email: "100@qq.comE", weight: 100}
E.test()//10,说明父类的静态方法可以被子类继承;但同理实例对象无法访问
// e1.test()//报错

es6(五):class关键字(extends,super,static)的更多相关文章

  1. ES6学习笔记--class,extends,super

    ES6引入了class(类)的概念.新的class写法让对象原型的写法更加清晰.更像面向对象编程的语法,也更加通俗易懂. class Animal{ constructor(){ this.type ...

  2. es6 Class的继承extends & super

    Class之间可以通过extends关键字,实现继承. 子类会继承父类的属性和方法. class Point { constructor(x, y) { this.x = x; this.y = y; ...

  3. 关键字——this,super,static,final

    this 理解为当前对象. //测试 public static void main(String[] args){ Person person = new Person(3, "xiaoM ...

  4. ES6学习笔记<一> let const class extends super

    学习参考地址1  学习参考地址2 ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015:也 ...

  5. 【Java学习笔记之十五】Java中的static关键字解析

    Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键 ...

  6. 关于JS对象原型prototype与继承,ES6的class和extends · kesheng's personal blog

    传统方式:通过function关键字来定义一个对象类型 1234567891011 function People(name) { this.name = name}People.prototype. ...

  7. java关键字extends(继承)、Supe(父类引用空间)、 This(方法调用者对象)、Instanceof(实例类型-判断对象是否属于某个类)、final(最终)、abstract(抽象) 、interface(接口)0

    java 继承使用关键字extends   继承的作用:减少代码量,优化代码 继承的使用注意点: 1子类不能继承父类的私有变量 2.子类不能继承父类的构造方法 3.子类在调用自己的构造方法时 会默认调 ...

  8. 【转】Java关键字final、static使用总结

    转自:http://lavasoft.blog.51cto.com/62575/18771/   Java关键字final.static使用总结   一.final        根据程序上下文环境, ...

  9. Java关键字final、static使用总结

    Java关键字final.static使用总结   一.final        根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方 ...

  10. 转!Java关键字final、static使用总结

    Java关键字final.static使用总结   一.final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可 ...

随机推荐

  1. rambbit mq 安装

    https://blog.csdn.net/lmjy102/article/details/78571078 http://www.rabbitmq.com/tutorials/tutorial-on ...

  2. 跨平台移动APP开发进阶(四)AngularJS简介

    AngularJS 是一个为动态WEB应用设计的结构框架.它能让你使用HTML作为模板语言,通过扩展HTML的语法,让你能更清楚.简洁地构建你的应用组件. 它的创新点在于,利用 数据绑定 和 依赖注入 ...

  3. 用CSS指定外部链接的样式

    大部分的信息类网站,比如维基百科,都会对外部链接(<a>标签)指定特定的样式.作为用户,一眼就知道该链接是指向另一个站点的资源是很好的体验.许多网站在服务器端做外部链接检查,添加一个`re ...

  4. PorterDuffXferMode不正确的真正原因PorterDuffXferMode深入试验)

    菜鸡wing遇敌PorterDuffXferMode,不料过于轻敌,应战吃力.随后与其大战三天三夜,三百余回合不分胜负.幸得 @咪咪控 相助,侥幸获胜. 关键字:PorterDuffXferMode ...

  5. wing带你玩转自定义view系列(1) 仿360内存清理效果

    本篇是接自 手把手带你做自定义view系列 宗旨都是一样,带大家一起来研究自定义view的实现,与其不同的是本系列省去了简单的坐标之类的讲解,重点在实现思路,用简洁明了的文章,来与大家一同一步步学习. ...

  6. 集群通信组件tribes之使用方法

    上面已经对tribes的内部实现机制及原理进行了深入的剖析,在理解它的设计原理后看看如何使用tribes,整个使用相当简单便捷,只需要四步: ① 定义一个消息对象,由于这个消息对象是要在网络之间传递的 ...

  7. 数据挖掘进阶之序列模式分析算法GSP的实现

    序列模式分析算法GSP的实现 一.算法简介 序列模式定义:给定一个由不同序列组成的集合,其中,每个序列由不同的元素按顺序有序排列,每个元素由不同项目组成,同时给定一个用户指定的最小支持度阈值,序列模式 ...

  8. OpenCV分通道显示图片,灰度,融合,直方图,彩色直方图

    代码有参考跟整合:没有一一列出出处 // split_rgb.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <io ...

  9. ORALCE EBS ALERT 初体验

    Oracle EBS Alert Alert 是一种Oracle系统中的一种机制,它可以监视系统数据库,在规定的情况下给规定用户一个通知,通知可以是邮件或者其他形式,在标注的系统和客户化系统中都是可以 ...

  10. Github搜索技巧-如何使用github找到自己感兴趣的项目

    Github现在不仅仅作为一个版本控制工具,更是一个开源的仓库,里面不但有优秀的开源代码,电子书,还有一些五花八门的项目,有些国家的法律也放在上面,作为程序员如何找到自己感兴趣的项目就非常重要了! 欢 ...