我正在尝试执行以下操作,这可能吗?在JavaScript中通过字符串名称引用对象
var objectName = {prop: 'value'};
var stringName = 'objectName';
console.log([stringName]) // output {prop: 'value'}
更新: 其实有几个方法可以做到这一点,我已经知道,但似乎这是更多地与巴贝尔如何编译导入对象的问题。道歉这样一个沉闷的问题...
我正在尝试执行以下操作,这可能吗?在JavaScript中通过字符串名称引用对象
var objectName = {prop: 'value'};
var stringName = 'objectName';
console.log([stringName]) // output {prop: 'value'}
更新: 其实有几个方法可以做到这一点,我已经知道,但似乎这是更多地与巴贝尔如何编译导入对象的问题。道歉这样一个沉闷的问题...
如果它在全球范围内,你可以从窗口对象得到它
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'}
如果你这样做在前台,你可以做console.log(window[stringName])
。
取决于您是否尝试访问全局对象上的属性?如果是这样,那么没有它不可能。但是,您可以像这样访问对象属性。
var myVariable = {
prop: 'something'
};
var propName = 'prop';
console.log(myVariable[propName]);
不管怎样,不污染全局变量是一个好习惯。
你为什么要这样做? –