我不确定这是否重复,但我找不到关于这个主题的帖子..
我正在尝试将数组对象传递给多个函数。我知道你通常做这样的事情:
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函数,有人可以帮忙吗?
答案 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
}
}