iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > 其他 >class是es5还是es6
  • 642
分享到

class是es5还是es6

classES6 2022-11-22 23:11:33 642人浏览 八月长安
摘要

本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。class是es6新特性。在ES6中,class (类)作为对象的模板被引入,可以通过 class 关键字定义类。ES6 提供了更接近传统语言的写法,新引

教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

class是es6新特性。在ES6中,class (类)作为对象的模板被引入,可以通过 class 关键字定义类。

ES6 提供了更接近传统语言的写法,新引入的class关键字具有正式定义类的能力。类(class)是ECMAScript中新的基础性语法糖结构,虽然ECMAScript 6类表面上看起来可以支持正式的面向对象编程,但实际上它背后使用的仍然是原型和构造函数的概念,让对象原型的写法更加清晰、更像面向对象编程的语法。

一、class简介

传统的js只有对象的概念,没有class类的概念,因为JS是基于原型的面向对象语言,原型对象特点就是将属性全部共享给新对象。

ES6引入了class类这个概念,通过class关键字可以定义类,这就是更符合我们平时所理解的面向对象的语言。

class Person{   //定义一个名为Person的类
    // 构造函数,用来接受参数
    constructor(x,y){
        this.x = x;    //this代表的是实例对象
        this.y = y;
    }
    todoSome(){  //这是个类的方法,不需要加function,有多个方法也不用逗号隔开
        alert(this.x + "的年龄是" +this.y+"岁");
    }
}
export default  Person;

二、静态方法和静态属性

静态方法和静态属性,是使用static关键字的属性和方法

2.1 静态方法

static claSSMethod(){
		console.log('123456')
	}
  • 静态方法不会被子类继承,子类不能调用
  • 静态方法中的this,指向的是类class,不是类的实例。因此静态方法只能通过类名来调用,不能通过实例来调用
let p = new Point();
p.classMethod();  // 报错

2.2 静态属性

static prop = 1 ;  // 静态属性
  • 静态属性不能被子类继承,子类不能调用
  • 静态属性只能通过类名来调用,不能通过类的实例来调

三、class继承extends

  • class可以用过extends关键字来继承
  • ES6继承,子类构造函数中必须使用super()。因为ES6继承是先将父类实例对象的属性和方法,加到this上面,然后再调用子类的构造函数修改这个this
  • 如果子类没有定义constructor方法,super()会默认添加上
  • 子类会继承父类的方法和属性,但是静态方法和属性必须通过子类的类名来调用
import classtest from "./classtest";  //先引入父类
class Man extends classtest{
    constructor(x,y){   //构造函数尽量与父类参数保持一致
        super();   //利用super()关键字,这个必须放在子类构造函数中的第一位置
        this.x = x;
        this.y = y;
    }
}
export default  Man;

四、class的取值函数getter和存值函数setter

getter、setter就是给class的属性读值、传值用的。

取值函数getter和存值函数setter可自定义赋值和取值行为,当一个属性只有getter没有setter的时候,这个属性就是只读属性,不能赋值,第一次初始化也不行。

如果变量定义为私有的(定义在类的花括号外面),就可以只使用getter不使用setter。

let data=[1,2,3,4];  //放在类外面,属于私有变量,可以只读取
class Person{
    // 构造函数
    constructor(x,y){
        this.x = x;
        this.y = y;
    }
    get x(){
        console.log('获得name');
        return this._name;    //get读取属性
    }
    set x(x){
        console.log("设置name");  
        this._name=x;   //set给属性赋值
    }
    get data(){
        return data;   //只读属性,属性返回的值只能是私有变量
    }
    todoSome(){
        alert(this.x + "的年龄是" +this.y+"岁");
    }
    static dayin(){
        alert("dayin");
    }
}
export default  Person;

如何使用:

 var test= new this.$myutils.classtest('haha','18');
  test.x="haha3";   //改变了实例化时候的x的值
  test.todoSome();  //输出:haha3的年龄是18岁。这里就已经不是实例化时候的haha了
  console.log(test.data);   //结果:打印[1,2,3,4]

五、注意事项:

1、在类中定义方法时候,不可以给方法加上function关键字,因为JS中构造函数是用function定义的,两个隔开。

2、所有方法不要用逗号隔开,否则会报错。

【推荐学习javascript高级教程】

以上就是class是es5还是es6的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: class是es5还是es6

本文链接: https://www.lsjlt.com/news/173501.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • class是es5还是es6
    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。class是es6新特性。在ES6中,class (类)作为对象的模板被引入,可以通过 class 关键字定义类。ES6 提供了更接近传统语言的写法,新引...
    99+
    2022-11-22
    class ES6
  • es5和es6指的是什么
    本文小编为大家详细介绍“es5和es6指的是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“es5和es6指的是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。es5全称“ECMAScript 5”,是EC...
    99+
    2023-07-04
  • es6 class是不是语法糖
    这篇文章主要介绍了es6 class是不是语法糖的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇es6 class是不是语法糖文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2024-04-02
  • es6的class是不是函数
    本篇内容介绍了“es6的class是不是函数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • class类是不是es6语法
    本文小编为大家详细介绍“class类是不是es6语法”,内容详细,步骤清晰,细节处理妥当,希望这篇“class类是不是es6语法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。class类是es6语法,是es6新增...
    99+
    2023-07-04
  • es2017是es6还是es8
    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。“es”简介es全称“ECMAScript”,是根据 ECMA-262 标准实现的通用脚本语言,ECMA-262 标准主要规定了这门语言的语法、类型、语句...
    99+
    2022-11-22
    javascript ECMAScript
  • await是es6还是es7的
    本教程操作环境:windows7系统、ECMAScript 7版、Dell G3电脑。在最新的ES7(ES2017)中提出的前端异步特性:async、await。一、什么是async和awaitasync和await是ES7中新增内容,对于...
    99+
    2022-11-22
    es7 ES6 async await
  • es6的class是不是严格模式
    今天小编给大家分享一下es6的class是不是严格模式的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。是严格模式。es6类和模...
    99+
    2023-07-04
  • es6的class是干什么的
    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。基础es6引入了Class(类)这个概念,class关键字用于快速地定义“类”。新的class写法让对象原型的写法更加清晰、更像面向对象编程的语法,也更加...
    99+
    2022-11-22
    javascript ES6
  • class是es6的新特性吗
    这篇文章主要讲解了“class是es6的新特性吗”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“class是es6的新特性吗”吧!class是es6新特性。在ES6中,class(类)作为对象...
    99+
    2023-07-04
  • class在es6中本质是什么
    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。es6的Class类详解class基本语法JavaScript 语言中,生成实例对象的传统方法是通过构造函数和原型的组合模式.ES6 提供了更接近传统语言...
    99+
    2022-11-22
    class ES6 javascript
  • javascript是不是es5
    这篇文章主要介绍了javascript是不是es5,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 javascr...
    99+
    2024-04-02
  • 小程序要将es6转es5的原因是什么
    这篇文章主要讲解了“小程序要将es6转es5的原因是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“小程序要将es6转es5的原因是什么”吧!为了浏览器兼容。ES6作为JS的新规范,加入了...
    99+
    2023-07-04
  • ES6中class的基础用法是什么
    这篇“ES6中class的基础用法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ES...
    99+
    2024-04-02
  • es6中class继承调用super的原因是什么
    本文小编为大家详细介绍“es6中class继承调用super的原因是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“es6中class继承调用super的原因是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-07-04
  • es2015是不是es6
    这篇文章主要介绍了es2015是不是es6的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇es2015是不是es6文章都会有所收获,下面我们一起来看看吧。es2015是es6。es全称“ECMAScript”,是...
    99+
    2023-07-04
  • es2017是不是es6
    这篇文章主要介绍“es2017是不是es6”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“es2017是不是es6”文章能帮助大家解决问题。 ...
    99+
    2024-04-02
  • ES5和JavaScript的关系是什么
    这篇文章主要介绍“ES5和JavaScript的关系是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ES5和JavaScript的关系是什么”文章能帮助大家解决...
    99+
    2024-04-02
  • promise是不是es6的
    本篇内容主要讲解“promise是不是es6的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“promise是不是es6的”吧!是的。promise是ECMAScript 6新增的引用类型,表示一...
    99+
    2023-07-04
  • es6是不是框架
    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。es6不是框架,而是一种JavaScript语言的标准。es6全称ECMAScript6(ECMAScript的第6个版本),是于2015年6月正式发布的...
    99+
    2022-11-22
    javascript ES6
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作