运行 javascript 具有函数和 IIFE 的代码时的行为差异
difference on behavior when running javascript code with function and IIFE
所以让我们假设我有一个包含以下场景的 index.js 文件。该文件被导入到 index.html 文件中,它将触发该文件中的内容。我可以期望以下代码片段表现不同或表现相同吗?我看到了相同的结果,但不妨问一下 :)
场景一
(() => {
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');
});
}
场景三
navigator.serviceWorker.register("sw.js").then(() => {
console.log('sw registered');
});
当然 - 它们的行为相同。您可能出于各种原因选择一个或另一个,这可能取决于代码的上下文以及您期望代码如何发展。例如,如果可能需要重新使用该函数,那么您会选择命名函数方法。不过,我看不出 (1) 的丑陋冗长有多大意义。
所以让我们假设我有一个包含以下场景的 index.js 文件。该文件被导入到 index.html 文件中,它将触发该文件中的内容。我可以期望以下代码片段表现不同或表现相同吗?我看到了相同的结果,但不妨问一下 :)
场景一
(() => {
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');
});
}
场景三
navigator.serviceWorker.register("sw.js").then(() => {
console.log('sw registered');
});
当然 - 它们的行为相同。您可能出于各种原因选择一个或另一个,这可能取决于代码的上下文以及您期望代码如何发展。例如,如果可能需要重新使用该函数,那么您会选择命名函数方法。不过,我看不出 (1) 的丑陋冗长有多大意义。