dà 6 (correttamente) perchè hai creato una closure
quando l'evento si verifica, il for ha portato la variabile menuopen a 6 , pertanto l'alert stampa l'ultimo valore di menuopen all'interno del ciclo (mentre tu ti aspetti che venga stampato il valore che era attuale nella singola iterazione).