Автоматически выполнять javascript-функции И называть их позже?
Я читал во многих местах, что вы можете автоматически запускать js-функции при загрузке, делая:
$(function() {
// code...
});
или
var myFunc = function() {
// code...
}();
Мой вопрос: как вы называете эти функции позже? Поскольку простая декларация
function myFunc() {
// code...
}
можно легко вызвать, но не запускать автоматически. Я должен вручную называть их всех при загрузке, и это раздражает, занимать пробелы в коде, и это может быть источником ошибок, если я его забыл.
Если вы не понимаете моих объяснений, вот пример:
У меня есть поле "вес" и "высота" в моей форме, и мне нужно рассчитать индекс массы тела (индекс массы тела).
Когда страница загружается, вес и высота заполняются базой данных, тогда я запускаю расчет, когда все готово.
Но позже, если пользователь изменит вес или высоту, ИМТ должен немедленно пересчитать. Какой лучший способ сделать это? Используя jquery или чистый JS, я не против.
Спасибо.
Ответы
Ответ 1
Повторяемая немедленная функция
var reference = (function thename(){
//function body
return thename; //return the function itself to reference
}()); //auto-run
reference(); //call it again
reference(); //and again
Обратите внимание, что вызов функции возвращает ссылку на вызываемую вами функцию.
var anotherReference = reference(); //anotherReference === reference
Ответ 2
var myFunc = function() {
// code...
};
И затем в загрузке:
$(function() {
myFunc();
});
И позже:
myFunc();
Ответ 3
Этот код:
var myFunc = function() {
// code...
}();
Не будет выполнен на готовом документе, он выполнит момент, когда браузер проанализирует файл. Теперь, если с вами все в порядке, вы можете снова вызвать эту функцию:
myFunc();
Просто как это....
Помогает ли это?