使用字符串变量按名称查找属性

时间:2012-02-09 15:40:15

标签: javascript

我想使用变量中的字符串查找Javascript对象的属性,但是当我执行下面的代码时,第二个警报会返回undefined

 <script>
    var operations = {"Create": "POST",
                      "Read": "GET",
                      "Delete": "DELETE"
    };
    //result POST
    alert(operations.Create);

    var method="Create";
    alert(operations.method); //returns undefined, I want it to return "POST"
 </script>

如何使用“method”变量查找我在脚本开头创建的“Create”属性?

6 个答案:

答案 0 :(得分:4)

operations[method]

如果要通过变量访问,则不能使用点表示法。原因是当你使用点表示法时,解释器不使用变量的值;它认为变量名称本身就是关键。换句话说,它正在寻找关键的“方法”,而不是“创造”。

答案 1 :(得分:0)

方法未在对象声明中定义,因此它正在做它应该做的事情。 var方法不包含在ooerations中。你想定义。

答案 2 :(得分:0)

Operations没有方法属性。如果要将该值添加到对象中,可以执行以下操作:

operations.method = "Create";
alert(operations.method);

如果要获取特定字符串键的值,可以由索引器查找:

alert(operations["Create"]);

答案 3 :(得分:0)

你应该这样做:

var method=operations.Create;
alert(method);

var method="Create";
alert(operations[method]);

答案 4 :(得分:0)

我相信你将方法声明为一个单独的字符串对象。而不是

var method="Create";

尝试做

operations.method = "Create";

这会使方法成为操作对象的实际属性,您可以从 operations.method 或<强>操作[ “方法”]

答案 5 :(得分:0)

var operations = {"Create" : "POST",
                  "Read" : "GET",
                  "Delete" : "DELETE"
                };

alert(operations.Create);

operations.method = 'Create';
alert(operations.method);

var method = 'Create';
alert(method);