Предположим, это мой единственный HTML
<input id="target" type="number">
И предположим, что это мой единственный JavaScript
var target = document.getElementById('target');
Я хочу выполнять function
при каждом изменении ввода, но я также хочу выполнить указанное function
один раз при загрузке страницы (Self-Executing Function
или IIFE
). Ниже приведены 3 примера, 1 из которых не работает.
Следующее работает, как и ожидалось:
target.addEventListener('input', myFunction);
function myFunction(){
console.log('executed!');
}
myFunction();
Здесь function
будет выполняться при загрузке страницы. Он не будет выполняться eventListener
, вместо этого он выведет ReferenceError: myFunction is not defined
на консоль:
target.addEventListener('input', function(){
myFunction();
});
(function myFunction(){
console.log('executed!');
})();
Этот не будет выполняться ни при загрузке страницы, ни по eventListener
и выведет ReferenceError: myFunction is not defined
в консоль:
target.addEventListener('input', myFunction);
(function myFunction(){
console.log('executed!');
})();
Мой вопрос: почему третий пример не работает?
myFunction
где-то еще. У него будет точно такая же проблема, как и при третьей попытке. - person Pointy   schedule 18.04.2018