私はgeneratedPattern
と呼ばれるグローバル変数を持っているとします。私はfunction animate()
でそれを使用したいが、その価値を変更したくない。したがって、関数のローカル変数(たとえばvar patternToAnimate
)にgeneratedPatternをコピーし、次にpatternToAnimateを使用します。関数内のグローバル変数のコピーを使用する
patternToAnimateの変更はgeneratedPatternを変更しますか?もしそうなら、どうすればこの問題を回避できますか?
ie。どのようにグローバルに変更することなく関数内でgeneratedPatternをローカルで使用するのですか?
編集:
誰かがコードを求めているので:
function animateGeneratedPattern() {
var patternToAnimate=generatedPattern;
function animateNextPattern(lightup) {
if (!patternToAnimate|| patternToAnimate.length === 0) {
return;
}
switch(patternToAnimate[0]) {
case 1:
animateRed();
break;
case 2:
animateGreen();
break;
case 3:
animateBlue();
break;
case 4:
animateYellow();
break;
}
if (lightup) {
// Long delay before turning light off
setTimeout(function() {
animateNextPattern(false);
}, 500);
}
else {
patternToAnimate.splice(0, 1);
// Small delay before turning on next light
setTimeout(function() {
animateNextPattern(true);
}, 10);
}
}
animateNextPattern(true);
}
をpatternToAnimateがスプライシングされます場合は、そのgeneratedPattern
それが依存しています。 –
これは、グローバルにvar generatedPattern = [];として定義されています。 – leoOrion