ts在constructor的形参中使用private 描述一个对象,然后能在类的方法中通过this访问对应的对象?

如下代码
希望大神能帮我深入普及知识

@Controller()
export class AppController {
  // 2. 如果他是这么写的我可以理解
  // private readonly appService: AppService
  constructor(private readonly appService: AppService) {}

  @Get('/hello')
  getHello(): string {
    // 1. 为什么在这里可以通过this访问appService
    return this.appService.getHello();
  }
}
阅读 6k
2 个回答

就是一语法糖啊……

class SampleClass {
    private foo: string

    constructor(_foo: string) {
        this.foo = _foo;
    }
}

class SampleClass {
    constructor(private foo: string) {
    }
}

下面的是上面的简写,这有啥可深入普及的……

你看下这段代码编译成js后的结果就能明白了,实例化的时候,constructor 的参数都会被挂载到this上的图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进