Bir değişken varlık haline gelene kadar bekler bir işlev gerekir neden olur. Örnek kodu ile bu işlevi çağırmakdeğişken typeof ile var ulaşılmasını beklemek sonsuz döngü
function wait(variable, callback) {
if (typeof variable !== "undefined")
callback();
else
setTimeout(function() {
wait(variable, callback);
}, 0)
}
altında sonsuz bir döngü neden olur.
var a;
wait(a, function(){console.log('success')});
setTimeout(function(){a=1}, 1000)
Neden?
Değişkenler, referans ile değil, değere göre geçirilir, bu yüzden 'setTimeout'unuzdaki mevcut, tanımsız değeri geçiyorsunuz. – Barmar
Hep olacak a' 'değerini, geçiyoruz' – haim770