下面的 JavaScript 应该(在我看来)以 0.5 秒的间隔播放一系列音符。但它会将它们全部作为一个同时的和弦来演奏。知道如何修复它吗?
function playRecording() {
if (notes.length > 0) {
for (var i = 0; i < notes.length; i++) {
var timeToStartNote = 500 * i;
setTimeout(playNote(i), timeToStartNote);
}
}
}
function playNote(i) {
var noteNumber = notes[i];
var note = new Audio("/notes/note_" + noteNumber + ".mp3");
note.play();
}
JavaScript 闭包,将其包装在一个自执行函数中:
for (var i = 0; i < notes.length; i++) {
(function(i) {
var timeToStartNote = 500 * i;
setTimeout(function() {
playNote(i)
}, timeToStartNote);
})(i)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)