首页 > 解决方案 > 什么时候 getter 函数在 JavaScript 中有用?

问题描述

特别是在对象中使用时,何时将 getter 函数用于常规函数。例如,使用和使用有什么区别

const obj = {
        get method() {
                return data;
        }
};
console.log(obj.method);

还有这个

conts obj = {
        method() {
                return data;
        }
};
console.log(obj.method());

标签: javascriptgetter

解决方案


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 方法是所谓的访问器属性的一个示例(好文章)。


推荐阅读