Javascript从类声明中获取属性名称

时间:2016-11-20 14:22:40

标签: javascript reflection

让我们有一个javascript“class”

  var User= function(id, firstName, lastName) {
      this.id=id;
      this.firstName=firstName;
      this.lastName=lastName
  }
  var user = new User (1,"I", "am");

我想引用用户类的特定字段名称,让我们说id字段,而不使用字符串“id”

...像(user->id).getName();之类的东西(应该返回字符串“id”)

注意:枚举用户对象属性并没有帮助我,因为我必须使用字符串“id”和其他硬代码在其中选择

希望我很清楚。

目标是选择用户Object的某些属性来填充表,而不将对象属性硬编码为字符串。 感谢

3 个答案:

答案 0 :(得分:0)

使用以下功能。您将获得对象中所有键的数组。

$ ls ~/.gradle/caches/modules-2/files-2.1/org.ejml/
 all        core        dense64     denseC64    equation    simple

现在,您不需要硬编码。只需将函数响应存储到var中,然后使用循环按顺序获取值。

答案 1 :(得分:0)

一种方法可以是为每个属性实现一个静态访问的同名函数。

...但是要写一些paintfull(需要复制每个属性声明和错误可能会附加)

    var User= function(id, firstName, lastName) {
        this.id=id;
        this.firstName=firstName;
        this.lastName=lastName
    };
    User.id=function()  {return "id"};
    User.firstName=function()  {return "firstName"};
    User.lastName=function()  {return "lastName"};

有了它,我可以访问该属性的名称,而不会(太多)模糊,如

var user = new User (1,"I", "am");
var myFieldList=[User.id(), User.firstName()];

而不是

var myFieldList=["id", "firstName"];

答案 2 :(得分:0)

我尝试在PHP中实现它,对于那些感兴趣的人:the github link