上一节我们详细介绍了什么是类,怎么创建一个类,本节我们将深入JS中类的学习,掌握如何通过定义多个方法来实现类的行为和功能。

类的方法分为两种类型:实例方法和静态方法。

1. 实例方法(Instance Methods)

实例方法是类的原型方法,通过类的实例进行调用。它们可以访问实例的属性,并且可以使用this关键字引用当前实例。以下是一个实例方法的示例:

  /*学生类*/
  class Student//通过class关键字创建一个学生类,类名首字母通常大写
  {
    constructor(name, age, gender)//构造函数,用于初始化类内成员变量
    {
      this.name = name
      this.age = age
      this.gender = gender
    }
    /* 通过this调用类内属性 */
    greet(){
      console.log(`Hello ,我是${this.name}`);
      
    }
    
  }
  /* 通过类这个模板进行批量创建 */
  const s1 = new Student('Dotcpp编程', 18, 'male')
  /* 检测类的行为 */
s1.greet();//Hello ,我是Dotcpp编程

2. 静态方法(Static Methods)

静态方法是类本身的方法,不依赖于类的实例,直接通过类名进行调用。它们通常用于实现一些与类相关但不依赖实例的功能。以下是一个静态方法的示例:

  /*计算类*/
  class Calc//通过class关键字创建一个计算类,类名首字母通常大写
  {
    str='一个简单的类内变量'
    //static修饰函数后,函数变成静态的了,可以不用实体化对象而直接使用
    static myAdd(a,b){
      //console.log(str);//应明确说明"静态方法无法访问实例属性和方法,没有注释这里会报错!
      
     return a+b
    }
    
  }
  /* 跳过实体化对象,直接使用类内静态函数 */
const ret =Calc.myAdd(0,1);
console.log(ret);//1

在JavaScript中,类方法也需要一些注意事项。以下是关于类方法的一些建议:

要点说明
方法定义应在原型上定义方法,避免在构造函数内定义,防止每个实例创建方法副本,节省内存
实例访问通过this关键字访问实例属性和方法,比如第一个例子我们把this.name放到greet()函数里
静态方法使用static关键字定义,属于类本身而非实例,比如第二个例子我们直接调用Calc.myAdd()
继承重写子类可继承并重写父类方法,使用super关键字调用父类方法实现扩展
上下文绑定方法作为回调时需绑定上下文,使用bind()或箭头函数确保this指向正确实例
命名规范避免方法与属性命名冲突,使用明确且有意义的名称,减少潜在冲突风险
文档注释使用JSDoc等规范添加文档注释,描述方法用途、参数、返回值和用法,提高可维护性

总之,在定义和使用类方法时,需要考虑方法的访问方式、继承与重写、上下文绑定以及命名冲突等问题。良好的类方法设计和规范的使用将有助于提高代码的可读性和可维护性。

点赞(115)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)