Typescript - Setter/Getter 的优势?

Wro*_*ong 6 javascript getter setter typescript

我是一名主要用 Java 开发的后端开发人员,所以我被教导使用 setter/getter 而不是直接访问类的属性。

现在我进入前端世界,现在进入 js/ts。我见过很多人直接访问对象变量,而不像在 Java 中那样使用 setter 和 getter,例如this.person.name.

为什么是这样?如果您不需要添加额外的代码而只是为了获取值或设置它,那么在 ts 和 js 上使用 getter/setter 有什么优势吗?

谢谢。

عبد*_*مان 5

使用 getter 或 setter 与直接访问对象变量之间的区别在于,在赋值时会自动调用 getter/setter。所以它看起来就像一个普通的属性,但在幕后,你可以在分配之前或之后运行额外的逻辑(或检查)。

因此,如果您决定将这种额外的逻辑添加到已经有引用的现有对象属性之一,您可以将其转换为 getter/setter 样式,而无需更改有权访问该属性的其余代码。

let person = {
    _age: 50,

    set age(newage){
      if(typeof newage === 'number'){
           this._age = newage;
            console.log('valid input')
      }
      else{
           console.log ('Invalid input');
      }
    }

  };
Run Code Online (Sandbox Code Playgroud)

  • 那么唯一的好处是在函数中添加更多代码?与安全或其他无关? (2认同)