写了一个集成度很高的JS脚本,但遇到了一个问题。需要将变量名以字符串的形式传递给指定的逻辑处理。但是在字符串转换成变量名时遇到点问题,请教了一下搜索引擎得到了两种解决方案,下面就由飞鸟慕鱼博客来详细的说说。

js字符串转为变量使用的方法

方法1、使用 eval 函数将字符串转换变量名

PS:不推荐此方法,网上说此方法有一定的危险性,个人没测试过,有兴趣的可以自行研究。

例:

//全局变量
host = 'feiniaomy.com';
str = 'host';
console.log(eval(str)); // feiniaomy.com
//局部变量
var name = 'mochu';
str2 = 'name';
console.log(eval(str2)); // mcohu

方法2、使用 window 对象将字符串转成变量

所有js中的全局对象,变量以及函数都会自动成国 window 对象的成员,所以我们可以利用 window 对象来实现js字符串转变量的方法。

例:

//全局变量
host = 'feiniaomy.com';
str = 'host';
console.log(window[str]); // feiniaomy.com
//局部变量
function a()
{
    var name = 'mochu';
    var str = 'name';
    return window[str];
}
console.log(a()); //mochu