今天在写js的时候碰到了问题,我有一个页面需要循环生成很多的变量。但是变量的名称是根据参数的不同而区分的。
这就需要我定义一个var num =1,2,3,4,5,6,7去拼接一个共同的字符串data.
例如可能需要生成 data1,data2,data3... (后面的数字是根据定义的参数sum来的) 所以我的函数名,应该由 var "data_"+num =100; 生成函数名与赋值,但这问题就来了。初始化变量时 等号左边是不允许是表达式的。所以在JS中使用 var "data"+num = 100 这种写法是有问题的。这时可以使用 window[name] = 值,用这种方式来为定义变量。看代码举例
function create_variable(num){
var name = "data"+num; //生成函数名
window[name] = 100;//为定义的变量data+num赋值,
window['name'] = 200; //为生成的变量名name赋值
//注意看中括号里的内容加引号和不加引号的区别,最终效果相同
}
alert(data2); //会输出100;
alert(name); //会输出200;