javascript - 什么时候 getter 函数在 JavaScript 中有用?
问题描述
特别是在对象中使用时,何时将 getter 函数用于常规函数。例如,使用和使用有什么区别
const obj = {
get method() {
return data;
}
};
console.log(obj.method);
还有这个
conts obj = {
method() {
return data;
}
};
console.log(obj.method());
解决方案
1. 使用普通属性/方法,您可以更改其值。getter 方法不能更改其值。看看当我们在这里尝试改变 getter 时会发生什么(它没有改变):
const obj = {
methodNormal() {
return 5;
},
get methodGetter() {
return 5;
}
};
obj.methodNormal = "red";
obj.methodGetter = "blue";
console.log(obj);
2. 其次,使用普通属性,您可以返回函数 ieobj.methodNormal
或返回正在执行的函数ie obj.methodNormal()
。使用 getter 函数,您没有返回函数的奢侈。您只能执行obj.methodGetter
该功能。下面的代码片段演示了这一点。
const obj = {
methodNormal() {
return 5;
},
get methodGetter() {
return 5;
}
};
let captureNormalMethod = obj.methodNormal;
let captureGetterMethod = obj.methodGetter;
console.log(captureNormalMethod);
console.log(captureGetterMethod);
这两种特性 - 不可更改且无法在新变量或属性中捕获 - 有助于 getter 函数具有“隐藏”感。现在您可以理解人们说 getter 是“只读”属性时的意思了!
进一步阅读:
我所说的“普通属性”被称为数据属性(好文章)。
Getter 方法是所谓的访问器属性的一个示例(好文章)。
推荐阅读
- javascript - 将对象数组动态映射到表格行
- javascript - 改组包含 React 组件的 React 状态数组
- unity3d - Unity / Search 按标签关闭列表中的对象
- excel - 比较 3 列的数字差异
- c# - C# 无法从与实例化不同的方法访问类实例
- python - Jupyter笔记本没有读取现有文件
- entity-framework - 嵌套实体集合
- python - 如何计算python pandas的平均时间
- automated-tests - REST 服务的 SOAP UI 中的参数传输到 URI
- peoplesoft - 如何在应用程序设计 PeopleSoft 中编写 Max effe date < 2 年