разница в поведении при запуске javascript кода с функцией и IIFE - PullRequest
0 голосов
/ 31 января 2020

Итак, давайте представим, что у меня есть индекс . js файл со следующим сценарием ios. Файл импортируется в файл index. html, и он вызывает то, что находится внутри этого файла. Могу ли я ожидать, что следующие фрагменты будут вести себя по-разному или вести себя одинаково? Я вижу те же результаты, но с таким же успехом могу спросить:)

сценарий 1

(() => {
  navigator.serviceWorker.register("sw.js").then(() => {
    console.log('sw registered');
  });
})();

scaneario 2

registerServiceWorker();

function registerServiceWorker() {
   navigator.serviceWorker.register("sw.js").then(() => {
        console.log('sw registered');
   });
}

сценарий 3

navigator.serviceWorker.register("sw.js").then(() => {
    console.log('sw registered');
});

1 Ответ

1 голос
/ 31 января 2020

Конечно - они будут вести себя одинаково. Вы можете выбрать одну или другую по разным причинам, возможно, в зависимости от контекста кода и ожидаемого развития кода. Например, если может потребоваться повторное использование функции, то вы должны выбрать подход с именованной функцией. Я не вижу особого смысла в уродливом многословии (1).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...