ES6类里面的get关键字

在阅读egg.js的源码的时候,发现有以下代码:

class EggCore extends KoaApplication {
    
    constructor(options) {
        ......
    }
    .....
    
    get router() {
        if (this[ROUTER]) {
          return this[ROUTER];
        }
        const router = this[ROUTER] = new Router({ sensitive: true }, this);
        // register router middleware
        this.use(router.middleware());
        return router;
      }
      
   ...
}

想知道get关键字是干嘛的,这样写有什么作用或优点?
我也可以直接写在构造函数中啊。

class EggCore extends KoaApplication {

  constructor(options) {
     ......
    this.router = (() => {
      if (this[ROUTER]) {
        return this[ROUTER];
      }
      const router = this[ROUTER] = new Router({sensitive: true}, this);
      // register router middleware
      this.use(router.middleware());
      return router;
    })();
  }
}
阅读 6.9k
推荐问题