You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在TypeScript类方法中无需this关键字访问类成员?

问题:TypeScript类中能否省略this关键字访问类成员?

我刚接触Node.js和TypeScript,在实现类时发现必须使用this关键字才能访问类成员,对此感到疑惑。示例代码如下:

class MyClass {
  private value: string

  constructor(value: string) {
    this.value = value;
  }
    
  getSomething() { return this.value }
}

请问是否有办法在getSomething方法中省略this关键字?


不行,在TypeScript(以及JavaScript)的类方法里,必须通过this来访问类的实例成员。这是因为类的每个实例都有自己独立的成员副本,this指向当前调用方法的那个实例,能保证你访问的是该实例对应的成员。

不过有两种替代写法可以让你不用反复写this,但本质上还是依赖this:

  • 解构this:在方法开头把需要的成员解构出来,后面直接用变量名就行

    getSomething() {
      const { value } = this;
      return value;
    }
    
  • 使用箭头函数(不推荐用于类方法):箭头函数会捕获外层作用域的this,但如果把方法定义成箭头函数,它会变成实例的属性而非原型上的方法,每个实例都会创建一个新的函数副本,会浪费内存。写法如下:

    class MyClass {
      private value: string;
    
      constructor(value: string) {
        this.value = value;
      }
      
      getSomething = () => this.value;
    }
    

总的来说,没有办法完全绕过this来访问类实例成员,解构只是语法糖,箭头函数则是改变了this的绑定方式,但都没真正省略对this的依赖。

内容的提问来源于stack exchange,提问作者MatrixRonny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 20:29:55