在 Angular 2 方法上添加“get”关键字有什么影响?

use*_*188 6 angular

我发现我可以在方法名称前使用或不使用“get”关键字来编写 get 方法。到目前为止的读数表明这是为了获取属性值,因此您不需要调用 get 方法而是直接使用属性名称?但是,如果该财产已经是公开的,那为什么这很重要呢?程序如何知道这个方法是针对哪个属性的?最后,“get”关键字是否对其他方法(即未绑定到任何属性的方法)执行任何操作?

Gün*_*uer 5

您可以像访问字段一样访问它

class MyClass {
  private _with:number = 5;
  private _height:number = 3;

  get square() {
    return this._with * this._height;
  }
}
Run Code Online (Sandbox Code Playgroud)
console.log(new MyClass().square);
Run Code Online (Sandbox Code Playgroud)

15

getter 可以是公共的、受保护的或私有的。让某些东西表现得像一个属性(看起来像一个字段)或一个函数只是装饰性的。
主要区别通常是一个函数传达了一些实际工作将完成,而一个属性通常应该是便宜的,并且一个 getter 不应该修改状态,但这只是约定。

你在评论中的例子

因此,有get square()new MyClass().square是一样的square(),并new MyClass().square()

回答:是的