JavaScript通过名称获取当前作用域中的变量
JavaScript get variable in current scope by name
所以我有一个变量和一个变量名为的字符串
function Factory(string) {
var foo = 'bar'
console.log("foo is equal to " + this[string])
}
如果变量所在的对象是当前对象,我如何从字符串文本中获取变量?
我原以为代码会起作用,但发生了以下情况:
var f = new Factory('foo') //=> "foo is equal to undefined"
如何从字符串文字中获取变量?
this[string]
假设您有一个变量this.foo
,但您没有。
如果你愿意,你可以做一些eval
操作,这将在你的情况下起作用:
function Factory(string) {
var foo = 'bar'
console.log("foo is equal to " + eval('(function(){return ' + string + '})()'))
}
虽然可以使用eval
,但我认为正确的方法是使用对象:
function Factory(string) {
var variables = {foo: 'bar'};
console.log(string + " is equal to " + variables[string])
}
相关文章:
- 当我更新另一个作用域变量时,作用域变量会自动更新
- 如何在隔离作用域指令中访问此作用域变量
- 正在向构造函数添加作用域变量
- 如何在angularjs中将多个作用域变量传递到自定义指令中
- 作用域变量未从状态父控制器继承到子控制器
- 插槽:访问作用域变量
- 在另一个作用域变量中使用AngularJS作用域变量
- 在Angular.js中通过检查作用域变量进行过滤
- 如何更新作为属性传入的作用域变量
- Node.js中的垃圾收集作用域-变量将保持设置状态多长时间
- 从$http.get调用更新Angular作用域变量
- AngularJS ui路由器:访问子作用域变量
- 访问AngularJS中函数中的作用域变量
- 为什么Angular 1.5双向绑定在将作用域变量传递给组件绑定时失败
- 修改作用域变量后,未更新作用域绑定
- 控制器作用域变量在刷新之前未加载
- 将Angular作用域变量的字符串描述传递给指令
- 将内部作用域变量绑定到外部“模板”
- 无法在 $.post 回调中设置作用域变量
- 如何从在 JS 中用作参数的匿名函数中分配外部作用域变量