在Javascript中按名称(字符串)返回私有对象属性

麦克萨曼

我已经设计出一种方法,该方法通过创建一种返回对象属性的方法来访问这些对象的私有属性。但是,我想创建一个可以基于传递的字符串参数返回任何对象属性的函数。

这是我要执行的操作的一个示例:

function MyObj() {

    var myProp = 10;

    this.getProp = function( propName ) {

        return( propName ); // THIS IS WHERE I AM STUCK

    };


}

MyObj.prototype.getMyProp = function() {

    return this.getProp( 'myProp' );

};

var myObj = new MyObj();

console.log( myObj.getMyProp() );

从该示例中可以看到,字符串“ myProp”返回的不是变量。我不在正确的范围内,因此无法使用this [propName],也无法使用that / self技术访问范围。

如何使用字符串返回对象属性?

聚苯乙烯

一种简单的解决方案是将私有变量包装在这样的对象中:

function MyObj() {
    var privateVars = {
        myProp: 10
    };

    this.getProp = function( propName ) {
        return privateVars[propName];
    };
}

MyObj.prototype.getMyProp = function() {
    return this.getProp( 'myProp' );
};

var myObj = new MyObj();

console.log( myObj.getMyProp() ); // 10

更新:eval在这种情况下似乎也可以使用,但我不建议这样做:

function MyObj() {
    var myProp = 10;

    this.getProp = function( propName ) {
        return eval(propName);
    };
}

MyObj.prototype.getMyProp = function() {
    return this.getProp( 'myProp' );
};

var myObj = new MyObj();

console.log( myObj.getMyProp() ); // 10

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

QML Access对象属性按属性名称字符串

来自分类Dev

使用串联字符串作为JavaScript对象属性名称

来自分类Dev

检查Javascript对象是否具有以特定字符串开头的属性名称

来自分类Dev

根据Java中的输入字符串名称返回对象

来自分类Dev

根据Java中的输入字符串名称返回对象

来自分类Dev

通过返回字符串的函数的Javascript动态对象属性

来自分类Dev

如何通过私有字符串变量按字母顺序对对象向量进行排序

来自分类Dev

VueJS字符串插值可以访问TS对象的私有属性

来自分类Dev

从javascript中的函数属性返回连接的字符串

来自分类Dev

JavaScript:在数组中查找具有包含特定字符串的属性的对象

来自分类Dev

从对象属性(字符串)在JavaScript中构造RegExp

来自分类常见问题

在反编译的.java类Kotlin中,私有字符串属性可以为空

来自分类Dev

如何将 Xml 字符串反序列化为具有私有 setter 属性的对象?

来自分类Dev

C ++通用对象工厂按字符串名称

来自分类Dev

创建具有按相同属性分组的对象的字符串

来自分类Dev

从打字稿中的数组中的字符串派生键以定义对象属性名称

来自分类Dev

在javascript中获取JSON对象的对象名称并将其存储在字符串数组中

来自分类Dev

按属性以字符串形式对对象排序

来自分类Dev

C#SortedObservableCollection按对象的字符串属性

来自分类Dev

按字符串属性对对象列表进行排序

来自分类Dev

当我将其名称作为字符串时如何执行私有JavaScript函数

来自分类Dev

从开关中的字符串名称返回等效对象

来自分类Dev

从开关中的字符串名称返回等效对象

来自分类Dev

按名称返回对应的输入类型为字符串(字符串模板文字)

来自分类Dev

获取对象属性名称作为字符串

来自分类Dev

检查对象属性名称是否出现在字符串python中

来自分类Dev

用JSON字符串中的缩写替换js对象属性的名称?

来自分类Dev

使用对象的字符串名称在asp.net中修改其属性

来自分类Dev

有没有办法将函数的名称返回给Rust中的字符串?

Related 相关文章

  1. 1

    QML Access对象属性按属性名称字符串

  2. 2

    使用串联字符串作为JavaScript对象属性名称

  3. 3

    检查Javascript对象是否具有以特定字符串开头的属性名称

  4. 4

    根据Java中的输入字符串名称返回对象

  5. 5

    根据Java中的输入字符串名称返回对象

  6. 6

    通过返回字符串的函数的Javascript动态对象属性

  7. 7

    如何通过私有字符串变量按字母顺序对对象向量进行排序

  8. 8

    VueJS字符串插值可以访问TS对象的私有属性

  9. 9

    从javascript中的函数属性返回连接的字符串

  10. 10

    JavaScript:在数组中查找具有包含特定字符串的属性的对象

  11. 11

    从对象属性(字符串)在JavaScript中构造RegExp

  12. 12

    在反编译的.java类Kotlin中,私有字符串属性可以为空

  13. 13

    如何将 Xml 字符串反序列化为具有私有 setter 属性的对象?

  14. 14

    C ++通用对象工厂按字符串名称

  15. 15

    创建具有按相同属性分组的对象的字符串

  16. 16

    从打字稿中的数组中的字符串派生键以定义对象属性名称

  17. 17

    在javascript中获取JSON对象的对象名称并将其存储在字符串数组中

  18. 18

    按属性以字符串形式对对象排序

  19. 19

    C#SortedObservableCollection按对象的字符串属性

  20. 20

    按字符串属性对对象列表进行排序

  21. 21

    当我将其名称作为字符串时如何执行私有JavaScript函数

  22. 22

    从开关中的字符串名称返回等效对象

  23. 23

    从开关中的字符串名称返回等效对象

  24. 24

    按名称返回对应的输入类型为字符串(字符串模板文字)

  25. 25

    获取对象属性名称作为字符串

  26. 26

    检查对象属性名称是否出现在字符串python中

  27. 27

    用JSON字符串中的缩写替换js对象属性的名称?

  28. 28

    使用对象的字符串名称在asp.net中修改其属性

  29. 29

    有没有办法将函数的名称返回给Rust中的字符串?

热门标签

归档