Подтвердить что ты не робот

Автоматически выполнять javascript-функции И называть их позже?

Я читал во многих местах, что вы можете автоматически запускать js-функции при загрузке, делая:

$(function() {
    // code...
});

или

var myFunc = function() {
   // code...
}();

Мой вопрос: как вы называете эти функции позже? Поскольку простая декларация

function myFunc() {
    // code...
}

можно легко вызвать, но не запускать автоматически. Я должен вручную называть их всех при загрузке, и это раздражает, занимать пробелы в коде, и это может быть источником ошибок, если я его забыл.

Если вы не понимаете моих объяснений, вот пример:

У меня есть поле "вес" и "высота" в моей форме, и мне нужно рассчитать индекс массы тела (индекс массы тела). Когда страница загружается, вес и высота заполняются базой данных, тогда я запускаю расчет, когда все готово. Но позже, если пользователь изменит вес или высоту, ИМТ должен немедленно пересчитать. Какой лучший способ сделать это? Используя jquery или чистый JS, я не против.

Спасибо.

4b9b3361

Ответ 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();

Просто как это....

Помогает ли это?