javascriptの変数scope

javascriptで、

var clearFlag = false;
(省略)
setTimeout(clean(), 10000);
clearFlag = true;

というコードを書いたら、clearFlagがfalseのままでtrueにならない。なんでだ?

30分ぐらい考えててよく分からなかったので、visibility: hidden;にしたdivの内容をglobal変数として使うようにしてしまった。。。