在函数中使用prompt()变量

时间:2013-05-05 07:42:46

标签: javascript function variables

在此代码中:

var ask = prompt("Enter contact's first name");

function Contact(firstName, surname, age) {
    this.Name = firstName;
    this.Surname = surname;
    this.Age = age;
}

var contact = function (person) {
    for (var prop in person) {
        document.write(prop + ": " + person[prop] + "</br>");
    }
};

var Alice = new Contact("Alice", "Example", 24);
var Bob = new Contact("Bob", "Bobby", 39);


contact(ask);

为什么它现在可以使用提示框作为变量?只需在联系人函数中使用字符串,它就可以正常工作。是不是因为它是变量而不是字符串?

3 个答案:

答案 0 :(得分:1)

你的for循环正在迭代字符串中的字符数组。所以它实际上是有效的。不确定你的目标是什么。

变量Alice和Bob不会在任何地方使用。这会让我觉得你希望能够根据输入获取一些联系人数据。修改您的联系人功能如下(使用eval)您将能够将提示输入与可能的联系变量匹配:

var contact = function (personName) {
    var personObject = eval(personName)
    for (var prop in personObject) {
        document.write(prop + ": " + personObject[prop] + "</br>");
    }
};

答案 1 :(得分:0)

您正在使用字符串调用contact()函数,然后尝试在其上执行for...in循环,这没有任何意义。当然,您可以将for...in与字符串一起使用,但为什么要这样做?它只是遍历每个角色。

答案 2 :(得分:-1)

我将此代码插入编译器并且它不起作用,因为您没有使用if语句来表示函数