在JavaScript中按字符串名称引用对象

时间:2016-06-09 15:00:35

标签: javascript object

我试图做以下事情,这可能吗?

var objectName = {prop: 'value'};

var stringName = 'objectName';

console.log([stringName]) // output {prop: 'value'}

更新 实际上有几种方法可以做到这一点,我已经知道了,但这似乎与babel编译导入对象的方式有关。为这样一个沉闷的问题道歉...

3 个答案:

答案 0 :(得分:2)

如果它在全局上下文中,您可以从窗口对象

获取它

var objectName = {prop: 'value'};

var stringName = 'objectName';

console.log(window[stringName]) // output {prop: 'value'}

更好的方法是在对象中定义它并从对象获取值以供将来参考。

varvar obj = {
  objectName: {
    prop: 'value'
  }
};

var stringName = 'objectName';

console.log(obj[stringName]) // output {prop: 'value'}

答案 1 :(得分:0)

如果您在前端执行此操作,则可以执行console.log(window[stringName])

答案 2 :(得分:-1)

取决于,您是否尝试访问全局对象上的属性?如果是这样,那就不可能了。但是,您可以像这样访问对象属性。

var myVariable = {
  prop: 'something'
};

var propName = 'prop';

console.log(myVariable[propName]);

最好不要使用变量来污染全局范围。