Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从javascript中的函数中获取多个变量_Javascript_Jquery - Fatal编程技术网

如何从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;