javascript - Typescript - Setter/Getter 的优点?
问题描述
我是一名后端开发人员,主要使用 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');
}
}
};
推荐阅读
- c - gcc:错误:/e:/source codes/C/Practice/helloWorld.c:无效参数
- windows - 如何检查连接在 VBScript 中是否具有有效的目的地?
- flutter - 如何用flutter实现拖放
- c++11 - 以原子方式更新整数数组元素 C++
- python - 如何从 pandas 表中的每个类别中选择最常见的项目而不重复?
- java - 我想在 Jenkins macOS 的 macOS 从属设备上使用 JDK8,但删除早期 JDK 时节点构建失败
- c++ - 是否有 split_copy 或某种快捷方式
- r - geom_raster 不绘制所有值
- java - 如何触发事件以触发 Windows 计划作业
- xml - 如何在xml中拆分字符串?