我想使用变量中的字符串查找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
”属性?
答案 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);