iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >ES6基础语法之class类怎么用
  • 671
分享到

ES6基础语法之class类怎么用

2023-06-30 12:06:17 671人浏览 独家记忆
摘要

这篇文章主要介绍了es6基础语法之class类怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ES6基础语法之class类怎么用文章都会有所收获,下面我们一起来看看吧。一、class基本语法javascri

这篇文章主要介绍了es6基础语法之class类怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ES6基础语法之class类怎么用文章都会有所收获,下面我们一起来看看吧。

一、class基本语法

javascript 语言中,编写一个学生类,代码如下:(prototype可以个对象添加属性和方法)

function Student(stuno,stuname){this.stuno = stuno;this.stuname = stuname;}Student.prototype.stusex = "";Student.prototype.sayHi = function(){console.log("大家好,我是"+this.stuname+",我的学号是"+this.stuno+",性别:"+this.stusex);}var stu = new Student("001","孙悟空");stu.stusex = "男";//或// var stu = new Student();// stu.stuno = "001";// stu.stuname = "孙悟空";// stu.stusex = "男";stu.sayHi(); //大家好,我是孙悟空,我的学号是001,性别:男

ES6提供了更接近传统语言的写法,引入了Class这个概念:

constructor为构造函数,当创建对象的时候自动调用:

class Student{constructor(stuno,stuname) {this.stuno = stuno;this.stuname = stuname;}sayHi(){console.log("大家好,我是"+this.stuname+",我的学号是"+this.stuno);}}var stu = new Student("001","孙悟空");//或// var stu = new Student();// stu.stuno = "001";// stu.stuname = "孙悟空";stu.sayHi();//大家好,我是孙悟空,我的学号是001

注意:类的声明第一行除了class Student外,还可以如下写法:

let Student = classlet Student = class Student

二、类的属性和方法

实例属性和实例方法:

class Student{stuno = "";stuname = "";sayHi()  //此处方法有的地方称为原型方法{console.log("大家好,我是"+this.stuname+",我的学号是"+this.stuno);}}var stu = new Student();stu.stuno = "001";stu.stuname = "孙悟空";stu.sayHi();

静态属性和静态方法:

class Student{stuno = "";stuname = "";static proName = "";  //专业名称static proIntroduce(){console.log("专业名称:"+Student.proName);}sayHi(){console.log("大家好,我是"+this.stuname+",我的学号是"+this.stuno);}}Student.proName = "计算机";Student.proIntroduce();

三、实例方法的两种写法

方案一:(又称原型方法)

class Student{sayHi(){console.log("hi!");}}let stu = new Student();stu.sayHi();

等同于ES5中:

function Student(){}Student.prototype.sayHi=function(){console.log("hi!");}var stu = new Student();stu.sayHi();

方案二:

class Student{constructor(){this.sayHi = function(){console.log("hi");}}}let stu = new Student();stu.sayHi();

等同于ES5中:

function Student(){this.sayHi = function(){console.log("hi");}}var stu = new Student();stu.sayHi();

当两个方案冲突的时候,constructor里面的函数会覆盖外面的函数:

class Student{sayHi()  //等同Student.prototype.sayHi=function(){...}{console.log("hi!");}constructor(){this.sayHi = function() //等同在function内部定义{console.log("hello!");}}}let stu = new Student();stu.sayHi(); //hello!

等同于ES5中:

function Student(){this.sayHi = function(){console.log("hello!");}}Student.prototype.sayHi=function(){console.log("hi!");}var stu = new Student();stu.sayHi(); //hello!

四、class属性封装

在类的内部可以使用get和set关键字,对某个属性设置存值函数和取值函数,拦截该属性的存取行为。

class Student{get stuAge(){return this._stuAge;}set stuAge(age){if(age >= 18 && age <= 120)this._stuAge = age;else{this._stuAge = 18;console.log("年龄有错误,设置默认值18!");}}}let stu = new Student();stu.stuAge = 17;   //年龄有错误,设置默认值18!console.log(stu.stuAge); //18//------------------------------------------------------------------------------//注意://(1)在get和set后的属性名不能和函数里的取值和设置值的变量名相同(stuAge和_stuAge)//(2)getter不可单独出现//(3)getter与setter必须同级出现(不能一个在父类,一个在子类)

五、继承

通过 extends 实现类的继承。

//通过 extends 实现类的继承。class People //父类{name = "";sex = "";age = 0;sayHi(){console.log(`姓名:${this.name},性别:${this.sex},年龄:${this.age}`);}}class Student extends People  //子类继承父类,拥有父类的属性和方法{}class Teacher extends People //子类继承父类,拥有父类的属性和方法{salary = 0; //子类在父类基础上扩展一个属性sayHi() //子类在父类基础上重写父类方法{console.log(`姓名:${this.name},性别:${this.sex},年龄:${this.age},月薪:${this.salary}`);}}let stu = new Student();stu.name = "孙悟空";stu.sex = "男";stu.age = 500;stu.sayHi(); //姓名:孙悟空,性别:男,年龄:500let tc = new Teacher();tc.name = "唐僧";tc.sex = "男";tc.age = 100;tc.salary = 6000;tc.sayHi(); //姓名:唐僧,性别:男,年龄:100,月薪:6000

六、继承和构造方法

子类通过super()调用父类构造方法:

class People{constructor(name,sex,age){this.name = name;this.sex = sex;this.age = age;}sayHi(){console.log(`姓名:${this.name},性别:${this.sex},年龄:${this.age}`);}}class Student extends People{constructor(name,sex,age){super(name,sex,age);}}class Teacher extends People{constructor(name,sex,age,salary){super(name,sex,age);this.salary = salary;}sayHi(){console.log(`姓名:${this.name},性别:${this.sex},年龄:${this.age},月薪:${this.salary}`);}}let stu = new Student("孙悟空","男",500);stu.sayHi(); //姓名:孙悟空,性别:男,年龄:500let tc = new Teacher("唐僧","男",100,6000);tc.sayHi();//姓名:唐僧,性别:男,年龄:100,月薪:6000//------------------------------------------------//注意://(1)子类 constructor 方法中必须有 super ,且必须出现在 this 之前。//(2)调用父类构造函数,只能出现在子类的构造函数。//例如在sayHi()中调用super就会报错;

关于“ES6基础语法之class类怎么用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“ES6基础语法之class类怎么用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: ES6基础语法之class类怎么用

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

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

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

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

下载Word文档
猜你喜欢
  • ES6基础语法之class类怎么用
    这篇文章主要介绍了ES6基础语法之class类怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ES6基础语法之class类怎么用文章都会有所收获,下面我们一起来看看吧。一、class基本语法JavaScri...
    99+
    2023-06-30
  • ES6基础语法之class类介绍
    一、class基本语法 JavaScript 语言中,编写一个学生类,代码如下:(prototype可以个对象添加属性和方法) function Student(stuno,stun...
    99+
    2024-04-02
  • ES6基础语法之函数怎么使用
    这篇“ES6基础语法之函数怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ES6基础语法之函数怎么使用”文章吧。一、函...
    99+
    2023-06-30
  • ES6中class的基础用法是什么
    这篇“ES6中class的基础用法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ES...
    99+
    2024-04-02
  • ES6基础语法之Map和Set对象怎么用
    本篇内容主要讲解“ES6基础语法之Map和Set对象怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ES6基础语法之Map和Set对象怎么用”吧!一、Map对象Map 对象保存键值对。任何值...
    99+
    2023-06-30
  • ES6基础语法之模块化怎么实现
    本篇内容介绍了“ES6基础语法之模块化怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ES6 引入了模块化, ES6 的模块化分为导出...
    99+
    2023-06-30
  • ES6基础语法之对象介绍
    一、对象和属性和方法 JavaScript中对象: var person={name:"Jack",age:20}; 或: var name = "jack"; var age = ...
    99+
    2024-04-02
  • ES6基础语法之函数介绍
    一、函数参数的扩展 ES6支持参数的默认值: function fn(name,age,sex="男") { console.log(`大家好,我是${name},性别${sex}...
    99+
    2024-04-02
  • ES6基础语法之数组拓展
    一、Array.of() 将参数中所有值作为元素形成数组: console.log(Array.of(1, 2, 3, 4)); // [1, 2, 3, 4] 参数的值可以为不同的...
    99+
    2024-04-02
  • class类是不是es6语法
    本文小编为大家详细介绍“class类是不是es6语法”,内容详细,步骤清晰,细节处理妥当,希望这篇“class类是不是es6语法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。class类是es6语法,是es6新增...
    99+
    2023-07-04
  • ES6基础语法之字符串扩展
    一、字符串的遍历 JS中遍历字符串: var str = "hello,world"; for(var i = 0;i<str.length;i++) { console.l...
    99+
    2024-04-02
  • ES6基础语法之Map和Set对象
    一、Map对象 Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。 Map中的键值是有序的。 let myMap = new Map(); myMap.se...
    99+
    2024-04-02
  • ES6基础语法之模块化介绍
    ES6 引入了模块化, ES6 的模块化分为导出(export) @与导入(import)两个模块。 ES6模块化特点: (1)ES6 的模块自动开启严格模式,不管你有没有在模块头部...
    99+
    2024-04-02
  • ES6的Class类怎么使用
    本篇内容介绍了“ES6的Class类怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在ES6中,class (类)作为对象的模板被引入...
    99+
    2023-06-27
  • ES6基础语法之字符串扩展的方法
    这篇文章主要介绍“ES6基础语法之字符串扩展的方法”,在日常操作中,相信很多人在ES6基础语法之字符串扩展的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ES6基础语法之字符串扩展的方法”的疑惑有所帮助!...
    99+
    2023-06-30
  • ES6基础语法之数组的使用实例分析
    这篇文章主要介绍了ES6基础语法之数组的使用实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ES6基础语法之数组的使用实例分析文章都会有所收获,下面我们一起来看看吧。一、Array.of()将参数中所有值...
    99+
    2023-06-30
  • ES6中的class类怎么使用
    本篇内容主要讲解“ES6中的class类怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ES6中的class类怎么使用”吧! 认识class定义类 我...
    99+
    2024-04-02
  • python之class类和方法怎么使用
    本篇内容主要讲解“python之class类和方法怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python之class类和方法怎么使用”吧!类和方法的概念和实例类(Class):用来描...
    99+
    2023-07-05
  • ES6 javascript中class类的get与set怎么用
    这篇文章将为大家详细讲解有关ES6 javascript中class类的get与set怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:与 ES5 一样, 在...
    99+
    2024-04-02
  • Java基础之基本数据类型怎么用
    这篇文章主要为大家展示了“Java基础之基本数据类型怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java基础之基本数据类型怎么用”这篇文章吧。一、整型主要扩展一下不同进制的整型二进制、八...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作