所以我有一个变量和一个变量名的字符串
function Factory(string) {
var foo = 'bar'
console.log("foo is equal to " + this[string])
}
如果变量所在的对象是当前变量,我如何从字符串文字中获取变量?
我认为代码可行,但会发生以下情况:
var f = new Factory('foo') //=> "foo is equal to undefined"
如何从字符串文字中获取变量?
答案 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