将变量传递给MULTIPLE函数

时间:2014-10-01 12:27:28

标签: javascript variables

我不确定这是否重复,但我找不到关于这个主题的帖子..

我正在尝试将数组对象传递给多个函数。我知道你通常做这样的事情:

function name(values){
    var values ={
        name : "John",
        lastname: "Doe"
    }
    sayHello(values){
        alert(values.name);
    }
}

但在这种情况下,这不起作用。数组对象像上面的代码片段一样传递,它工作正常。但是当我后来想在不同的函数中使用它时,我得到的错误是未定义变量。这是我的代码:

function createValues(values){
    var values = {left:     (Math.floor((Math.random()*10)+1)),
                  right:    (Math.floor((Math.random()*10)+1)),
                  bottom:   (Math.floor((Math.random()*10)+1)),
                  top:      (Math.floor((Math.random()*10)+1))
            };  
    displayValues(values);
}

function displayValues(values){
     document.getElementById("left").innerHTML    = values.left;
     document.getElementById("right").innerHTML   = values.right;
     document.getElementById("bottom").innerHTML  = values.bottom;
     document.getElementById("top").innerHTML     = values.top;
     // The values are getting passed to this function
 }

function calcScore(p1_choice, values){
    if(p1_choice == "left"){
        score += values.left
        // Can't access the variables here
    }
}

单击按钮后,另一个函数会调用calcScore函数。我试图让价值观全球化,但这并没有帮助。 我不知道如何将变量传递给calcScore函数,有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

尝试将calcScore功能更改为此

function calcScore(p1_choice){
    var values = {left:     (document.getElementById("left").innerHTML),
                  right:    (document.getElementById("right").innerHTML),
                  bottom:   (document.getElementById("bottom").innerHTML),
                  top:      (document.getElementById("top").innerHTML)
        }; 
    if(p1_choice == "left"){
        score += values.left
        // Can't access the variables here
    }
}