本篇内容主要讲解“es6新特性中class基本用法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“es6新特性中class基本用法是什么”吧!
javaScript语言中,生成实例对象的传统方法是通过构造函数,与传统的面向对象语言(比如C++和Java)差异很大,ES6提供了更接近传统语言的写法,引入了class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。
es6class与es5的面向对象的区别:
1.写法不同,使用关键字class
2.当new一个实例,默认有一个constructor方法,且默认返回实例对象(this),也可以返回另一对象
3.类的所有方法都在prototype属性上,但是不可枚举,且每方法结束不能使用分号
4.类的调用必须通过new一个实例,且类的内部默认使用严格模式
5.不存在变量提升,必须先声明,再调用
6.class的this默认指向当前类
7.class的静态方法,使用关键字static,不需new,直接通过类来调用
8.实例属性和静态属性的写法,实例属性在类的内部直接使用等式(=)写法,也可以写在constructor方法里,静态属性只需在实例属性前加一个关键字static即可
9.类的继承使用关键字extends,继承机制与es5完全不同,
es5的继承原理:先new子类的实例对象this,再通过将父类的方法和属性添加到子类的this上(parents.call(this))。
Es6的继承原理:先创造父类的实例对象this,所以要构造函数constructor()访问父类的属性使用this,必须先调用super()方法;再通过子类的constructor()来修改this
10.类的继承可以继承原生的构造函数,es5不可以
es6class与es5一般写法
复制代码
//一.ES5写法:
functionAnimate(name){
this.name=name;
}
Animate.prototype.getname=function(){
console.log(this.name)
}
varp=newAnimate("lity");
p.getname();
//二.ES6,面向对象的写法,calss,
classPerson{
//constructor():构造方法是默认方法,new的时候回自动调用,如果没有显式定义,会自动添加
//1.适合做初始化数据
//2.constructor可以指定返回的对象
constructor(name,age){
this.name=name;
this.age=age;
}
到此,相信大家对“es6新特性中class基本用法是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。