首页前端开发其他前端知识ES6中的class类的知识点有哪些?

ES6中的class类的知识点有哪些?

时间2024-03-26 12:24:03发布访客分类其他前端知识浏览471
导读:这篇文章主要给大家介绍“ES6中的class类的知识点有哪些?”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“ES6中的class类的知识点有哪些?”文章能对大家有所帮助。...
这篇文章主要给大家介绍“ES6中的class类的知识点有哪些?”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“ES6中的class类的知识点有哪些?”文章能对大家有所帮助。

E其中主要介绍了关于class类的相关问题,ES6引入了class类这个概念,通过class关键字可以定义类,这就是更符合我们平时所理解的面向对象的语言。

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关键字的属性和方法

静态方法

static classMethod(){

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

静态属性

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、所有方法不要用逗号隔开,否则会报错。


现在大家对于ES6中的class类的知识点有哪些?的内容应该都清楚了吧,希望大家阅读完这篇文章能有所收获。最后,想要了解更多ES6中的class类的知识点有哪些?的知识,欢迎关注网络,网络将为大家推送更多相关知识点的文章。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

ES6

若转载请注明出处: ES6中的class类的知识点有哪些?
本文地址: https://pptw.com/jishu/653497.html
PHP date() 函数的使用之格式化时间 Node.Js异步编程是什么,异步编程问题如何处理

游客 回复需填写必要信息