gpt4 book ai didi

javascript - Typescript - Setters/Getters 的优势?

转载 作者:搜寻专家 更新时间:2023-10-30 21:27:13 24 4
gpt4 key购买 nike

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

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

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

谢谢。

最佳答案

使用 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');
}
}

};

关于javascript - Typescript - Setters/Getters 的优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52205362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com