Pisałem następujący fragment kodu:Co tu dzieje się z zakresem JavaScript?
var f = function() { document.write("a"); };
function foo() {
f();
var f = function() { document.write("b"); };
}
foo();
Spodziewałem funkcję, która drukuje a
się nazywać, ale zamiast tego daje błąd wykonania o wywołanie wartość undefined
. Dlaczego to się dzieje?
Zjawisko to jest z pewnością szczegółowo opisane w każdej początkowej książce JavaScript, nie wspominając już o niezliczonych tutorialach dla początkujących i pytaniach dotyczących StackOverflow. Trudno zrozumieć, dlaczego ludzie wciąż na tym polegają. –