在开始时我声明一个这样的变量:
var content = "likes";
var main_likes_data = true;
后来我想将变量更改为false,但我需要添加一个像这样的新变量:
main_" + content + "_data = false;
但这不起作用!
有人可以告诉我正确的sytax来改变变量吗?
谢谢!!!
答案 0 :(得分:4)
你需要一个关联数组。
var content = "likes";
var main_data = {
likes: true,
somethingelse: false,
xyz: false
};
main_data[content] = false;
答案 1 :(得分:0)
window["main_" + content + "_data"] = true;
这可以作为
a)默认情况下,没有定义范围的变量是针对window
对象的范围
b)您可以使用javascript中的方括号表示法与点符号互换。方括号表示法采用字符串。字符串可以使用变量连接。
答案 2 :(得分:0)
这是非常糟糕的编程习惯,但您可以使用eval:
eval("main_" + content + "_data = false");
我个人不会自己使用eval
,但其他人会这样做。引用John Resig:
“绝大多数[评估]被贬低,滥用和彻底谴责 大多数JavaScript程序员,但通过查看一些的工作 你可以看到最好的编码器,当适当使用时[它]允许 用于创建一些不可能的奇妙代码 否则可能“
John Resig,Secrets of the JavaScript Ninja