javascript - 制作一个用“eval”全局制作的数组
问题描述
我有 2 个功能。在第一个函数中,我声明了一个数组,其中包含来自用户的答案名称,我使用eval
.
function whengetanswerfrominput()
{
var answer = document.getElementById("input").value;
eval("var " + answer + " = ['bla','bla'];");
}
function whenclickotherbutton()
{
var answer = document.getElementById("input").value;
eval(answer + ".push('bla');");
}
但是后来我得到一个错误,说第二个eval
没有whenclickotherbutton()
定义。如何在第二个函数中声明数组以便他知道它。
> Uncaught ReferenceError: array is not defined.
解决方案
你得到这个的原因是你在第一个函数( )ReferenceError
的范围内定义变量。whengetanswerfrominput
您无法在第二个函数中访问它,因为您在第一个函数中对其进行了初始化。
您必须在第二个函数之外初始化变量才能访问它。
var answer = document.getElementById("input").value;
eval("var " + answer + " = ['bla','bla'];");
function whenclickotherbutton()
{
var answer = document.getElementById("input").value;
eval(answer + ".push('bla');");
}
推荐阅读
- elasticsearch - Elasticsearch 嵌套聚合查询
- vba - Visual Basic 组件
- python - Django 如何从数据库中检索现有帖子的值以便我们可以编辑
- android - 无法解析配置的所有工件并且找不到:未指定
- java - 为什么 Intellij IDEA 在我使用 java 8 时建议使用“List.of”来替换“Collections.unmodifiableList”?
- javascript - 向第三方 API 发送带有 GET 请求的标头
- actions-on-google - 为什么我的谷歌操作会挂在背靠背命令上?
- java - 需要对我的代码进行少量更改(java)(计数行)(初学者)
- java - Spring Boot LDAP 检查用户是否属于特定组
- ios - Xcode 上的 Swift._ArrayBuffer._copyContents