JavaScript按名称在当前范围内获取变量

时间:2013-11-26 22:49:18

标签: javascript

所以我有一个变量和一个变量名的字符串

function Factory(string) {
  var foo = 'bar'
  console.log("foo is equal to " + this[string])
}

如果变量所在的对象是当前变量,我如何从字符串文字中获取变量?

我认为代码可行,但会发生以下情况:

var f = new Factory('foo') //=> "foo is equal to undefined"

如何从字符串文字中获取变量?

2 个答案:

答案 0 :(得分:2)

this[string]假设您有一个变量this.foo,而您没有。


如果需要,您可以进行一些eval操作,这将适用于您的情况:

function Factory(string) {
  var foo = 'bar'
  console.log("foo is equal to " + eval('(function(){return ' + string + '})()'))
}

答案 1 :(得分:1)

虽然可以使用MyAttr,但我相信正确的方法是使用对象:

eval
相关问题