Javascript:如何随机更改背景?
我无法找出此代码的问题所在:Javascript:如何随机更改背景?,javascript,random,colors,Javascript,Random,Colors,我无法找出此代码的问题所在: <script> var colori = ['ffffff', 'ffbf00', 'ff4000', '4d79ff', '00c0ff', '00ff3f', 'ff7a4d', '00ff40', 'bf00ff', 'ff0040', 'ffd34d', 'a52a2a', 'bf00ff', '47adcf', '2a82a0' ]; var i; function CambiaColore(){ i
<script>
var colori = ['ffffff', 'ffbf00', 'ff4000', '4d79ff', '00c0ff', '00ff3f', 'ff7a4d', '00ff40', 'bf00ff', 'ff0040', 'ffd34d', 'a52a2a', 'bf00ff', '47adcf', '2a82a0' ];
var i;
function CambiaColore(){
i = Math.floor(Math.random() * colori.length);
var colore = '#'+colori[i];
document.body.style.background=colore;
setTimeout(CambiaColore(),2000);
};
CambiaColore();
</script>
var colori=[‘ffffff’、‘ffbf00’、‘ff4000’、‘4d79ff’、‘00c0ff’、‘00ff3f’、‘ff7a4d’、‘00ff40’、‘bf00ff’、‘ff0040’、‘ffd34d’、‘a52a2a’、‘bf00ff’、‘47adcf’、‘2a82a0’];
var i;
函数CambiaColore(){
i=Math.floor(Math.random()*colori.length);
var colore='#'+colori[i];
document.body.style.background=colore;
setTimeout(CambiaColore(),2000);
};
CambiaColore();
谁能给我解释一下怎么回事吗?设置超时(CambiaColore(),2000)代码>错误
setTimeout(CambiaColore,2000)代码>右
说明:
SetTimeout的第一个参数应该是函数。你明白了。但是函数名后面的括号表示它的执行(我的糟糕英语,是)。因此,在您的例子中,它涉及到递归,仅此而已。最大堆栈调用数,错误。。所以我理解,您不需要在那里执行func,而是推迟它的执行。我在上面展示了正确的方法。代码>设置超时(CambiaColore(),2000)代码>错误
setTimeout(CambiaColore,2000)代码>右
说明:
SetTimeout的第一个参数应该是函数。你明白了。但是函数名后面的括号表示它的执行(我的糟糕英语,是)。因此,在您的例子中,它涉及到递归,仅此而已。最大堆栈调用数,错误。。所以我理解,您不需要在那里执行func,而是推迟它的执行。我在上面介绍了正确的方法。另一种可能是将其包装在匿名函数中:
setTimeout ( function(){ CambiaColore() } , 2000 ) ;
另一种可能是将其包装在匿名函数中:
setTimeout ( function(){ CambiaColore() } , 2000 ) ;
你为什么认为有问题?请详细说明。你为什么认为有问题?请详细说明,好的。它可以使用原始函数contextYes。它可以使用原始函数上下文