变量JS中的变量
Variable Variable in JS
我需要在JS中创建一个变量变量名…
obj = {};
obj.fooonex = {};
obj.fooonex.start = 1;
obj.fooonex.end = 2;
a = "foo";
b = "one";
c = "x";
test = a + b + c;
alert(obj.test.start);
我希望结果是"1"
提琴在这里:http://jsfiddle.net/mR6BH/
你需要做的是:
alert(obj[test].start);
generic 2修复,即更健壮的解决方案
黏糊糊的东西!甚至所有东西都是绳子!!
从上面的问题我扩展objectname,propertyname为字符串Jang!…
objectname = "obj";
propertyname = "start";
//try alert(get(objectname + ".")+ test +"。"
+ propertyname));function get(path) {
var next = window;
path = path.split(/['[']'.]+/);
if (path[path.length - 1] == "") {
path.pop();
};
while (path.length && (next = next[path.shift()]) && typeof next === "object" && next !== null);
return path.length ? undefined : next;
}
另一 function getPropertyValueByPath (obj, path)
{
path = path.split(/['[']'.]+/);
if(path[path.length - 1] == "")
{
path.pop();
};
while(path.length && ( obj = obj[path.shift()]));
return obj;
}
使用 alert(getPropertyValueByPath(obj,test+ "." + propertyname ));
alert(get(objectname + "." + test + "." +propertyname));
非推荐方式
eval(objectname + "." + test + "." +propertyname )
Another way `eval("obj." + test + ".start")`
a way of insecure and non-advised eval()
相关文章:
- 等待函数完成,然后将返回值分配给变量JS
- 节点中的变量.js JavaScript 不会改变
- 如何在 Node 中访问模块全局变量.js例如浏览器中的 window.variable
- 在角度中使用父范围变量.js
- 在重新声明变量 (JS) 时遇到了问题
- 在主干中使用全局变量.js .最佳实践
- 在节点中使用变量.js mysql-node 查询
- 如果变量 JS 太高,则启动/停止反转
- 变量 Js 在 PHP 代码中不起作用
- 无法使用车把正确在我的“模板”中显示变量.js
- 引导程序中的全局变量.js在 Firefox for Android 扩展中
- Webstorm 中的“未解析变量 JS”
- 变量JS的子字符串值
- 动态更新变量JS
- 不能用一个主变量访问单个变量[jS]
- 创建全局变量js
- 当不同的函数需要从数据库调用数据时,如何避免使用全局变量.(JS)
- 变量JS中的变量
- 本地存储变量js
- 为循环追加变量js