环顾四周,没有找到任何与我想做的事情相匹配的东西..
我试图通过字符串表示来引用一个对象,尽管我到处都看到使用 eval()
是不好的 - 尽管找不到不使用 来做到这一点的方法>eval()
所以我的用例:
我在按钮上有一个数据属性;
data-original-data-object="window.app.myData.originalData"
单击按钮时,我需要访问 window.app.myData.originalData
中保存的实际对象
现在,我知道我能做到:
var dataObj = eval($(this).data('original-data-object'));
还有其他方法可以做到这一点吗?
如果有帮助的话,存储在 window.app.myData.originalData
中的数据是一个 JSON 对象。
最佳答案
像这样:
var obj = (function(str){
var arr = str.split('.');
if (arr[0] === 'window'){
arr.shift();
}
return arr.reduce(function(a, b){
return a[b];
}, window);
}("window.app.myData.originalData"))
关于javascript - 通过字符串值引用 javascript 对象 - 不使用 eval(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21439700/