Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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 for循环中的多个函数_Javascript_Jquery - Fatal编程技术网

Javascript for循环中的多个函数

Javascript for循环中的多个函数,javascript,jquery,Javascript,Jquery,我可以在for循环中创建多个函数吗 var mySound1 = new buzz.sound( "laser-01", { formats: [ "ogg", "mp3", "acc" ]}); var mySound2 = new buzz.sound( "alien-noise-01", {formats: [ "ogg", "mp3", "acc" ]}); var sound = [mySound1, mySound2] // additional sounds var $i; f

我可以在for循环中创建多个函数吗

var mySound1 = new buzz.sound( "laser-01", { formats: [ "ogg", "mp3", "acc" ]});
var mySound2 = new buzz.sound( "alien-noise-01", {formats: [ "ogg", "mp3", "acc" ]});

var sound = [mySound1, mySound2]

// additional sounds
var $i;
for ( $i = 0; $i< sound.length; $i++){
    function playsound[$i](){   
           a[$i].play().fadeIn().loop();
        }
}

playsound1();
var mySound1=newbuzz.sound(“激光-01”,{格式:[“ogg”、“mp3”、“acc”]});
var mySound2=新的buzz.sound(“alien-noise-01”,{格式:[“ogg”、“mp3”、“acc”]});
var sound=[mySound1,mySound2]
//附加声音
var$i;
对于($i=0;$i
您最好将$i作为参数传递给playsound函数

var sounds = [
    new buzz.sound( "laser-01", { formats: [ "ogg", "mp3", "acc" ]}),
    new buzz.sound( "alien-noise-01", {formats: [ "ogg", "mp3", "acc" ]})
];

var playsound = function (i) {   
   sounds[i].play().fadeIn().loop();
}

playsound(1);
如果您确实想要
playsound1()
样式的函数名,您可以对其进行评估(尽管我建议不要添加此名称):

for(变量i=0;i
您最好将$i作为参数传递给playsound函数

var sounds = [
    new buzz.sound( "laser-01", { formats: [ "ogg", "mp3", "acc" ]}),
    new buzz.sound( "alien-noise-01", {formats: [ "ogg", "mp3", "acc" ]})
];

var playsound = function (i) {   
   sounds[i].play().fadeIn().loop();
}

playsound(1);
如果您确实想要
playsound1()
样式的函数名,您可以对其进行评估(尽管我建议不要添加此名称):

for(变量i=0;i
您可以重复使用功能:

// declare your sound dictionary
var sounds = {
    'laser':       new buzz.sound( "laser-01", { formats: [ "ogg", "mp3", "acc" ]}),
    'alien-noise': new buzz.sound( "alien-noise-01", {formats: [ "ogg", "mp3", "acc" ]})
};

// this is the helper function
var playSoundFn = function() {
    this.play().fadeIn().loop();
};

// assign the helper function to all your sounds
for (var i=0, len=sounds.length; i<len; i++){
    sounds[i].playSound = playSoundFn;
}


// then play your sounds from any of them in your dictionary :
sounds['laser'].playSound();
sounds['alien-noise'].playSound(); 

您可以重复使用函数:

// declare your sound dictionary
var sounds = {
    'laser':       new buzz.sound( "laser-01", { formats: [ "ogg", "mp3", "acc" ]}),
    'alien-noise': new buzz.sound( "alien-noise-01", {formats: [ "ogg", "mp3", "acc" ]})
};

// this is the helper function
var playSoundFn = function() {
    this.play().fadeIn().loop();
};

// assign the helper function to all your sounds
for (var i=0, len=sounds.length; i<len; i++){
    sounds[i].playSound = playSoundFn;
}


// then play your sounds from any of them in your dictionary :
sounds['laser'].playSound();
sounds['alien-noise'].playSound(); 

什么是
a
?你的意思是
声音[$i]
?函数名必须是一个标识符,这样语法就根本不起作用了。此外,由于所有这些假设函数都将共享同一个变量
$i
,因此它们无法满足您的需要。这是一个关于Stackoverflow的问题的变体。什么是
a
?你的意思是
声音[$i]
?函数名必须是一个标识符,这样语法就根本不起作用了。此外,由于所有这些假设函数都将共享同一个变量
$i
,因此它们无法满足您的需要。这是一个关于Stackoverflow的数千次提问的变体。向上投票。。。这是一个很好的建议,尽管它并不完全符合OP的要求。我研究了这个问题,这是一个可行的解决方案,而不是为每个声音创建不同的功能。我本可以为他的问题提供一个解决方案,但这更好,依我看:)在
var-sounds
声明之前,最好将你的函数定义为
buzz.sound.prototype.playSound=function(){this.play().fadeIn().loop();}
,不?是的,这就是我给你投票的原因。这是一个比他要求的更优雅的解决方案。试着用我上面的建议来简化它。@TheSmose,是的,也许你是对的:)但是再一次,是
newbuzz.sound
实际返回一个带有
buzz.sound.prototype
prototype的对象吗?向上投票。。。这是一个很好的建议,尽管它并不完全符合OP的要求。我研究了这个问题,这是一个可行的解决方案,而不是为每个声音创建不同的功能。我本可以为他的问题提供一个解决方案,但这更好,依我看:)在
var-sounds
声明之前,最好将你的函数定义为
buzz.sound.prototype.playSound=function(){this.play().fadeIn().loop();}
,不?是的,这就是我给你投票的原因。这是一个比他要求的更优雅的解决方案。试着用我上面的建议来简化它。@TheSmose,是的,也许你是对的:)但是再一次,是
newbuzz.sound
实际返回了一个带有
buzz.sound.prototype
prototype的对象?为选中标记干杯@max。我想重申,我认为你应该使用下面亚尼克的答案。这并不完全是你想要的,但它是一个更干净的解决方案。为选中标记的@max干杯。我想重申,我认为你应该使用下面亚尼克的答案。这并不完全是你想要的,但它是一个更干净的解决方案。