Javascript for循环中的多个函数
我可以在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
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干杯。我想重申,我认为你应该使用下面亚尼克的答案。这并不完全是你想要的,但它是一个更干净的解决方案。