如何从javascript中的函数中获取多个变量
我创建了一个带有四个按钮效果的如何从javascript中的函数中获取多个变量,javascript,jquery,Javascript,Jquery,我创建了一个带有四个按钮效果的函数buttonEffects()(每个按钮一个效果)。因此,我想知道如何将这些变量带出这个函数,并将它们带到另一个函数中?我不知道我是否能够做到这一点,否则我将需要重新创建我的代码 我已经在函数buttonEffects()的底部返回了每个var,例如返回(var1、var2、var3、var4)并在其外部声明它们,但没有成功 现在,我正在尝试一种新的方法,其中我将每个变量置于函数范围之外,并在函数buttonEffects() 返回相同的startGame(
函数buttonEffects()
(每个按钮一个效果)。因此,我想知道如何将这些变量带出这个函数,并将它们带到另一个函数中?我不知道我是否能够做到这一点,否则我将需要重新创建我的代码
我已经在函数buttonEffects()
的底部返回了每个var,例如返回(var1、var2、var3、var4)代码>并在其外部声明它们,但没有成功
现在,我正在尝试一种新的方法,其中我将每个变量置于函数范围之外,并在函数buttonEffects()
返回相同的startGame()
效果。老实说,我很迷路
新方法:
//button blue effect
var blueButtonEffect = $(btnBlue).click(function() {
var originalColor = $(this).css('background-color');
blueBtnAudio.play();
$(this).css('background-color', '#00FFFF');
setTimeout(function() {
$(btnBlue).css('background-color', originalColor);
}, 100);
});
//button green effect
var greenButtonEffect = $(btnGreen).click(function() {
var originalColor = $(this).css('background-color');
greenBtnAudio.play();
$(this).css('background-color', '#7FFF00');
setTimeout(function() {
$(btnGreen).css('background-color', originalColor);
}, 100)
});
// button red effect
var redButtonEffect = $(btnRed).click(function() {
var originalColor = $(this).css('background-color');
redBtnAudio.play();
$(this).css('background-color', '#F08080');
setTimeout(function() {
$(btnRed).css('background-color', originalColor)
}, 100);
});
// button yellow effect
var yellowButtonEffect = $(btnYellow).click(function() {
var originalColor = $(this).css('background-color');
yellowBtnAudio.play();
$(this).css('background-color', '#F0E68C');
setTimeout(function() {
$(btnYellow).css('background-color', originalColor)
}, 100);
});
return (blueButtonEffect, redButtonEffect, greenButtonEffect, yellowButtonEffect);
// start the game
function buttonEffects() {
var blueButtonEffect;//something else shold be here....
var redButtonEffect;
var greenButtonEffect;
var yellowButtonEffect;
function startGame() { // it has a bug if clicked twice!
$(startButton).on('click', buttonEffects);
}
startGame();
}
});
返回一个对象,如下所示:
function thing() {
return {
item1: 1,
other: {
item2: 2,
item3: 3
}
};
}
var things = thing();
var item1 = things.item1;
var item2 = things.other.item2;
var item3 = things.other.item3;
我找到一个可能正确的方法,如果它是错误的,请让我知道
function buttonEffects(){
var blueButtonEffect = code here;
var redButtonEffect = code here;
var greenButtonEffect = code here;
var yellowButtonEffect = code here;
return {
item1: blueButtonEffect,
item2: redButtonEffect,
item3: greenButtonEffect,
item4: yellowButtonEffect
};
}
var effects = buttonEffects();
var blueButtonEffect2 = effects.item1;
var redButtonEffect2 = effects.item2;
var greenButtonEffect2 = effects.item3;
var yellowButtonEffect2 = effects.item4;
返回所有变量的数组,或返回一个对象,其中所有变量都分配给该对象中的键。非常直接。它将如何作为数组返回它?这样的孩子“返回[BlueButtoneEffect,RedButtoneEffect,GreenButtoneEffect,YellowButtoneEffect];”?是的,这将返回一个数组。我尝试过这种方法,但没有出现任何结果<代码>变量效果=按钮效果();var blueButtonEffect=效应[0];var redButtonEffect=效果[1];var greenButtonEffect=效应[2];var YellowButtoneEffect=效应[3]代码>你能用你最近的代码更新你的问题吗?明白。我将尝试这种方法。谢谢很高兴能帮忙!
function buttonEffects(){
var blueButtonEffect = code here;
var redButtonEffect = code here;
var greenButtonEffect = code here;
var yellowButtonEffect = code here;
return {
item1: blueButtonEffect,
item2: redButtonEffect,
item3: greenButtonEffect,
item4: yellowButtonEffect
};
}
var effects = buttonEffects();
var blueButtonEffect2 = effects.item1;
var redButtonEffect2 = effects.item2;
var greenButtonEffect2 = effects.item3;
var yellowButtonEffect2 = effects.item4;