一开始我声明一个像这样的变量:
var content = "likes";
var main_likes_data = true;
后来我想将变量更改为false,但我需要添加一个新变量,如下所示:
main_" + content + "_data = false;
但这不起作用!
有人可以告诉我更改变量的正确语法吗?
谢谢你!!!
一开始我声明一个像这样的变量:
var content = "likes";
var main_likes_data = true;
后来我想将变量更改为false,但我需要添加一个新变量,如下所示:
main_" + content + "_data = false;
但这不起作用!
有人可以告诉我更改变量的正确语法吗?
谢谢你!!!
你需要一个关联数组。
var content = "likes";
var main_data = {
likes: true,
somethingelse: false,
xyz: false
};
main_data[content] = false;
这是非常糟糕的编程习惯,但您可以使用 eval:
eval("main_" + content + "_data = false");
我个人不会使用eval
自己,但其他人会。引用 John Resig 的话:
“绝大多数 [eval] 被大多数 JavaScript 程序员轻描淡写、误用和彻底谴责,但通过查看一些最好的编码人员的工作,你可以看到,如果使用得当,[它] 可以创建一些很棒的代码片段否则这是不可能的”</p>
John Resig,在JavaScript Ninja 的秘密中
window["main_" + content + "_data"] = true;
这作为
a) 默认情况下,在没有定义范围的情况下创建的变量的范围是window
对象
b) 您可以在 javascript 中使用方括号表示法与点表示法互换。方括号表示法接受一个字符串。可以使用变量连接字符串。
现场示例:http: //jsfiddle.net/bX5Zy/