JS: Ввод значения TRUE в окно подсказки и оповещение его переменной - PullRequest
0 голосов
/ 08 октября 2009

Мне интересно, можно ли ввести значение переменной в поле приглашения, если оно вернется ко мне в предупреждении об исходной переменной.

Скажи: var myGoal = "answer"; Если я введу "answer" в приглашение, каким будет хороший метод, если взять мое значение "answer", выполнить поиск и вернуть myGoal в виде предупреждения?

Ответы [ 4 ]

2 голосов
/ 08 октября 2009

Примерно так бы и получилось:

function test(val)
{
    for (var i in window)
    {
        if (window.hasOwnProperty(i) && window[i] === val)
        {
            alert(i);
        }
    }
}

Это в основном повторяет все в глобальном объекте (окне) и выдает предупреждение, когда находит тот, который соответствует значению, которое вы ищете.

1 голос
/ 08 октября 2009

Если вы готовы немного изменить свой подход:

var Data = new Object();
Data["myGoal"] = "answer";
// ...

// Get response from prompt...
var response = /* ... */;

for (var key in Data)
{
    if (Data[key] == response)
    {
        alert(key);
    }
}
0 голосов
/ 08 октября 2009

Единственный способ достичь желаемого - использовать функцию eval. Eval также известен как «злая» функция. Это может создать огромные дыры в безопасности вашего кода и крайне неэффективно. Не используйте eval.

Проблема в том, что значение, присвоенное переменной, всегда будет литералом строки, числа, логического, неопределенного, массива, функции или объекта. Вы не можете присвоить имя переменной другой переменной в качестве значения, потому что, когда одна переменная назначается другой, содержимое переменной является тем, что фактически назначается.

Вам придется перепроектировать тест, который вы пытаетесь написать, чтобы явно проверить предоставленное значение вместо преобразования строки в имя переменной.

0 голосов
/ 08 октября 2009
function test() 
{
    var answer = prompt("Hello? What is your name?",'');
    alert(answer);
}
...