我想知道是否可以在提示框中输入变量的值,让它在原始变量的警报中返回给我。
说:var myGoal = "answer";
如果我answer
在提示符中输入“”,那么获取我的“ answer
”值,搜索并让它myGoal
在警报中返回的好方法是什么?
我想知道是否可以在提示框中输入变量的值,让它在原始变量的警报中返回给我。
说:var myGoal = "answer";
如果我answer
在提示符中输入“”,那么获取我的“ answer
”值,搜索并让它myGoal
在警报中返回的好方法是什么?
像这样的东西可以解决问题:
function test(val)
{
for (var i in window)
{
if (window.hasOwnProperty(i) && window[i] === val)
{
alert(i);
}
}
}
这基本上会遍历全局对象(窗口)中的所有内容,并在找到与您正在寻找的值相等的值时触发警报。
如果你愿意稍微改变你的方法:
var Data = new Object();
Data["myGoal"] = "answer";
// ...
// Get response from prompt...
var response = /* ... */;
for (var key in Data)
{
if (Data[key] == response)
{
alert(key);
}
}
实现您希望的唯一方法是使用 eval 函数。eval 也被称为“邪恶”函数。它会给你的代码带来巨大的安全漏洞,而且效率极低。不要使用评估。
问题是分配给变量的值将始终是字符串、数字、布尔值、未定义、数组、函数或对象字面量。您不能将变量名称作为值分配给另一个变量,因为当一个变量分配给另一个变量时,变量的内容就是实际分配的内容。
您将不得不重新设计您尝试编写的测试以显式地测试提供的值,而不是将字符串转换为变量名。
function test()
{
var answer = prompt("Hello? What is your name?",'');
alert(answer);
}