我如何连接参数名称的2个字符串
How can I concatenation parameter name out of 2 strings?
我有以下变量:
var MyVar = "8";
我有两个字符串,例如:
var foo = "My";
var bar = "Var";
现在我想提醒MyVar值,意思是提醒"8"而不是"MyVar"
alert(foo + bar) // returns "MyVar"
这是需要eval
的罕见情况:
var MyVar = "8",
foo = "My",
bar = "Var";
alert(eval(foo + bar))
链接: http://jsfiddle.net/howderek/wcVNU/
假设它是一个全局变量:
alert(window[foo + bar])
但是你最好使用对象和属性。对象属性也可以用括号符号来访问:
var obj = {
MyProp : 8
};
var foo = "My";
var bar = "Prop";
alert(obj[foo + bar]);
无需更改上下文,就可以使用eval
函数。但是,你必须非常小心。
var MyVar = 8;
var foo = "My";
var bar = "Var";
alert(eval(foo + bar));
这取决于你在做什么,尽管有很多方法可以做到这一点。如果您将MyVar
指定为某些上下文的一部分,例如this
或window
,您可以简单地使用键作为变量名查找值。
窗口背景
(function () {
window.MyVar = 8;
var foo = "My";
var bar = "Var";
alert(window[foo+bar]);
})();
函数上下文new (function () {
this.MyVar = 8;
var foo = "My";
var bar = "Var";
alert(this[foo+bar]);
})();
对象上下文(function () {
var obj = {}
obj.MyVar = 8;
var foo = "My";
var bar = "Var";
alert(obj[foo+bar]);
})();
相关文章:
- jsf中两个字符串的颜色代码差异
- 可以't在JavaScript中比较两个字符串
- 三元运算符检查多个字符串
- jQuery在两个字符串标识符之间选择HTML
- 为什么脚本标记被分解为两个字符串
- 比较Javascript中的两个字符串时出错
- 数组转换为多个字符串
- 如何检查两个字符串是否具有相同的字符,包括特殊字符
- Javascript正则表达式来比较两个字符串
- 使用Javascript获取两个字符串之间的字符串数组
- 如何比较两个字符串并删除jquery中的元素
- 如何在 jQuery 中将多个字符串放入单个字符串中
- 获取第一个字符串并在 Ajax 中进行比较
- 如何在 javascript 中使用正则表达式在其他两个字符串之间找到一个字符串
- 删除两个字符串正则表达式之间的所有内容
- 正则表达式每行只匹配第一个字符串
- 如何检查url是否包含多个字符串.Javascript/jquery
- 在JS中同时将字符串与2个字符串进行比较
- Javascript Regex匹配两个字符串之间的子字符串,但子字符串可以包含DOT(.)
- 在jQuery或JavaScript中获取两个字符串之间的文本