Stai passando a setInterval() una stringa che contiene un pezzo di codice dove viene chiamata la funzione muove(), che quando verrà eseguita non esisterà più, dato che l'esecuzione sarà posticipata di un certo lasso di tempo trascorso il quale ci si troverà già al di fuori della funzione che la definisce, ovvero fuori da avvia().
A parte che continuo a non comprende il motivo per cui si vuole obbligatoriamente definire quella funzione dentro l'altra, visto che non è una strada obbligata e mi sfuggono i vantaggi nel farlo, ma l'unico modo per far "sopravvivere" la funzione anche all'esterno di avvia() è sfruttare il meccanismo della Closure.
Ad esempio, si può scrivere il codice in questo modo:
codice:cronometro = window.setInterval(muove, 10);


Rispondi quotando