如何根据字符串变量表示访问函数内部的变量

时间:2018-06-07 12:59:01

标签: javascript node.js

我有以下功能

function myFunction(){
var foo="My Foo String";
}

我想以下列方式访问我的变量

function myFunction(){
var foo="My Foo String";
console.log(SOMETHINGIDONOTKNOWABOUT["foo"]);
}

我知道在javascript中可以使用window [“yourvariablename”]来访问它,但我有兴趣以类似的方式访问函数变量,因此 Is there a way to access a javascript variable using a string that contains the name of the variable?不重复。 Eval对我来说不是正确答案。

3 个答案:

答案 0 :(得分:1)

不要这样做。动态变量对于浏览器的调试和优化来说真的很烦人。

使用集合,地图,为其创建类,甚至是一个简单的对象来存储您希望能够使用字符串访问的内容。

function myFunction() {
    var myData = {
        "foo": "My foo string"
    };
    console.log( myData[ "foo" ] );
}

答案 1 :(得分:0)

如果我理解你的问题,你应该使用foo不加引号:

window[foo]

请注意,将值放在全局范围内是一种不好的做法。

答案 2 :(得分:0)

以下代码段是您尝试实现的目标吗?

如果要将变量用作数组元素名称,则不必使用引号。如果array["foo"]是变量,则array[foo]应为foo



var array = [];
array['foo'] = 'bar';

// Code #1
function myFunction(element) {
  console.log(array[element]);
}
myFunction('foo');

// Code #2
function myFunction() {
  element = 'foo';
  console.log(array[element]);
}
myFunction();




希望它有所帮助。