【发布时间】:2019-11-01 09:09:09
【问题描述】:
我想知道是否有任何方法可以在不使用 eval 的情况下将字符串转换为 var 名称。
我在一个文件中声明了以下 json:
{
"fields": {
"usr_language": {"var": "this.$i18n.locale", "value": null},
"token": {"var": "googleUser.getAuthResponse().id_token", "value": null}
}
}
当我在组件内部导入时,我想访问fields.usr_language.alias。
如果不使用 eval,它显然会返回字符串“this.$i18n.locale”。有什么方法可以在不使用 eval 获取变量中的值的情况下获取?在这种情况下使用 eval 是否不安全?
【问题讨论】:
-
为什么它首先是一个字符串?
-
这听起来是个糟糕的主意。因此,如果您的 text 与您的实际代码不匹配,您将开始收到运行时语法和/或引用错误。由于这是文本,您甚至无法使用任何广泛使用的工具来检查其正确性。
-
我不能,不能把 var 名称放在 json 文件中
-
没有真正的方法可以做到这一点,并且 eval 会遇到范围问题。
-
@h3rm3s 为什么不将变量作为某个对象的属性?
标签: javascript string variables eval