Waarom zou je een setTimeout met een timeout van 0 doen? De function setTimeout is asynchroon, dus na de eerste keer wordt meteen function2 aangeroepen in function 1. Als je die setTimemout verwijdert, werkt het prima.
@SanThe: Hé, ouwe vriend! :-) Keertje borrelen? (Zie je PM)
In JavaScript zijn "inner" functions geen probleem, dat mag gewoon.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
</head>
<body>
<pre id="log"></pre>
<script>
var mLog = document.getElementById("log");
function progress(message) {
mLog.innerHTML += message;
}
function function1(callback) {
var w, df, delta1, alfa;
var calc_power = 0,
power = 100000000;
function chi_power(n) { return n; }
function calculate(n) {
if (n < 10000000000000 && calc_power < power) {
calc_power = chi_power(n, w, df, delta1, alfa);
progress('n=' + n + '<br>');
calculate(n * 2);
}
}
calculate(1);
callback();
}
function function2() {
progress('calling function 2' + '<br>');
}
function1(function2);
</script>
</body>
</html>
[offtopic]
Hebben we in een (ver) verleden een aantal keer gedaan. Is hartstikke leuk, je ziet eindelijk de gezichten die bij de namen horen.
[/offtopic]