首页 > 解决方案 > 为 localStorage 模块定义一个 get/set 方法 adhoc

问题描述

有没有办法定义一个 get/set 方法 adhoc?我有一个封装 localStorage 的模块:

const ACCESS_TOKEN = "ACCESS_TOKEN";

export const getString = key => {
    return localStorage.getItem(key);
};

export const setString = (key, value) => {
    localStorage.setItem(key, value);
};


export default {
    get accessToken() {
        return getString(ACCESS_TOKEN);
    },
    set accessToken(value) {
        setString(ACCESS_TOKEN, value);
    },
};

我想在运行时生成它:

let obj;

obj["accessToken"] = get() {
 return getString(ACCESS_TOKEN);
}

obj["accessToken"] = set(value) {
      setString(ACCESS_TOKEN, value);
}

export default obj;

这个答案没有帮助,因为您似乎只能使用 Object.defineProperty 来定义简单的 getter 和 setter 而不是自定义逻辑。

标签: javascriptecmascript-6

解决方案


推荐阅读