如何在 ES6 javascript 类中的泛型方法中获取所有 getter setter 属性的列表或数组?

哈里普辛贾德贾

我创建了具有多个属性的 ES6 类。像这样 :

class CustomLocalStorage {
//#region userName
get userName() {
    this._userName = localStorage.getItem("25ciWC16Hh");
    this._userName = this._userName ? decryptText(this._userName) : "";
    return this._userName;
}

set userName(newValue) {
    if(newValue) {
        this._userName = encryptText(newValue + "");
        localStorage.setItem("25ciWC16Hh", this._userName);
    }

}
remove_userName() {
    this._userName = null;
    localStorage.removeItem("25ciWC16Hh");
}
//#endregion userName

//#region webapi
get webapi() {
    this._webapi = localStorage.getItem("ALOrVJuVKt");
    this._webapi = this._webapi;
    return this._webapi;
}

set webapi(newValue) {
    this._webapi = newValue;
    localStorage.setItem("ALOrVJuVKt", this._webapi)
}
remove_webapi() {
    this._webapi = null;
    localStorage.removeItem("ALOrVJuVKt");
}
//#endregion webapi   

如上面的代码所示,每个属性都绑定到 localStorage 对象。现在,我想要一种通用方法,它获取所有 getter/setter 属性并将其从 localStorage 中删除。

因此,为此我在类中编写了以下方法:

removeAll() {
    for (var key in this) {
        if(key != "_settings" && key != "") {
            this[key] = null;
            localStorage.remove(key);
        }
    }
}

但它没有获取任何 getter/setter 属性。谁能告诉我我错在哪里?

贝尔吉

问题是getter/setter 是不可枚举的(基本上就像 a 中定义的任何东西class)。不过,您仍然可以遍历它们Object.getOwnPropertyNames在你的情况下:

removeAll() {
    for (const name of Object.getOwnPropertyNames(CustomLocalStorage.prototype))
        if (name.startsWith("remove_")) // not "removeAll"!
            this[name]();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何防止在JavaScript中执行继承属性的getter setter方法

来自分类Dev

有没有办法让算术运算符在Javascript ES6中使用getter和setter?

来自分类Dev

ES6的getter和setter方法怪异的行为

来自分类Dev

如何在Android中的数组列表中进行getter和setter方法

来自分类Dev

如何在Angular中创建Getter Setter

来自分类Dev

使用getter和setter与在JavaScript中定义属性

来自分类Dev

使用getter和setter与在JavaScript中定义属性

来自分类Dev

在Javascript的继承类中声明getter / setter

来自分类Dev

如何枚举/发现JavaScript中的getter和setter?

来自分类Dev

getter和setter如何更改Dart中的属性?

来自分类Dev

如何在JavaScript中使用setter和getter,遇到错误

来自分类Dev

如何为多维数组创建getter方法和setter方法?

来自分类Dev

在类变量JavaScript上设置getter / setter

来自分类Dev

如何在具有getter和setter的属性上使用Aurelia的可绑定装饰器

来自分类Dev

如何在数组中查找多个元素-Javascript,ES6

来自分类Dev

JavaScript getter和setter

来自分类Dev

删除 getter/setter Javascript

来自分类Dev

ES6 getter setter和JSON对象

来自分类Dev

带Sinon的Stub ES6 Getter Setter

来自分类常见问题

Swift编程:存储属性中的getter / setter

来自分类Dev

js中的src属性的getter / setter?

来自分类Dev

模型中双向加密属性的Getter / setter

来自分类Dev

如何在Kotlin中跳过定义的getter或setter

来自分类Dev

如何在抽象类中使用getter和setter

来自分类Dev

如何在抽象类中使用getter和setter

来自分类Dev

如何从Android中的setter getter循环?

来自分类Dev

如何在 Javascript ES6 中映射 JSON 数据

来自分类Dev

在es6 javascript类的非静态成员函数中调用静态getter

来自分类Dev

Java反射-如何调用getter / setter方法?

Related 相关文章

  1. 1

    如何防止在JavaScript中执行继承属性的getter setter方法

  2. 2

    有没有办法让算术运算符在Javascript ES6中使用getter和setter?

  3. 3

    ES6的getter和setter方法怪异的行为

  4. 4

    如何在Android中的数组列表中进行getter和setter方法

  5. 5

    如何在Angular中创建Getter Setter

  6. 6

    使用getter和setter与在JavaScript中定义属性

  7. 7

    使用getter和setter与在JavaScript中定义属性

  8. 8

    在Javascript的继承类中声明getter / setter

  9. 9

    如何枚举/发现JavaScript中的getter和setter?

  10. 10

    getter和setter如何更改Dart中的属性?

  11. 11

    如何在JavaScript中使用setter和getter,遇到错误

  12. 12

    如何为多维数组创建getter方法和setter方法?

  13. 13

    在类变量JavaScript上设置getter / setter

  14. 14

    如何在具有getter和setter的属性上使用Aurelia的可绑定装饰器

  15. 15

    如何在数组中查找多个元素-Javascript,ES6

  16. 16

    JavaScript getter和setter

  17. 17

    删除 getter/setter Javascript

  18. 18

    ES6 getter setter和JSON对象

  19. 19

    带Sinon的Stub ES6 Getter Setter

  20. 20

    Swift编程:存储属性中的getter / setter

  21. 21

    js中的src属性的getter / setter?

  22. 22

    模型中双向加密属性的Getter / setter

  23. 23

    如何在Kotlin中跳过定义的getter或setter

  24. 24

    如何在抽象类中使用getter和setter

  25. 25

    如何在抽象类中使用getter和setter

  26. 26

    如何从Android中的setter getter循环?

  27. 27

    如何在 Javascript ES6 中映射 JSON 数据

  28. 28

    在es6 javascript类的非静态成员函数中调用静态getter

  29. 29

    Java反射-如何调用getter / setter方法?

热门标签

归档