В качестве продолжения этого вопроса все еще пытается уловить аномалии функций Javascript, кто-то может объяснить, почему работает следующий код?
Мой текст (шаблоны Javascript) гласит:
Если вы создаете новую функцию и
назначить его той же переменной, что
уже имеет другую функцию, вы
перезаписывая старую функцию с
новый.
Что заставило бы меня предположить, что в следующем коде переменные count
и name
будут перекрыты при создании второго определения функции test
.
Где живут переменные count
и name
?
$(document).ready(function() {
var test = function() {
var name = 'The Test Function';
var count = 1;
console.log(name + ' has been setup');
test = function() {
console.log('Number of times ' + name + ' has been called: ' + count);
count++;
};
}
test();
test();
test();
test();
test();
});
Выход:
