【发布时间】:2020-01-31 07:06:59
【问题描述】:
让我们假设我有一个包含以下场景的 index.js 文件。该文件被导入到 index.html 文件中,它将触发该文件中的内容。我可以期望以下 sn-ps 表现不同或表现相同吗?我看到了相同的结果,但不妨问一下:)
场景 1
(() => {
navigator.serviceWorker.register("sw.js").then(() => {
console.log('sw registered');
});
})();
扫描仪 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');
});
【问题讨论】:
-
#2中的函数留在内存中,可以重复使用,其他情况不可重复使用。
-
所以对于我来说,你所看到的实际上就是我在 index.js 中的所有内容,我不会在文件中添加任何其他内容。所以我想我做哪种场景并不重要@Teemu
-
我会使用 #3,IIFEs 没有添加任何内容。
-
是的,唯一的区别是,#2 使用更多内存,脚本在卸载之前不会从文档中删除。如果这是文件中的所有代码,我看不出有任何理由使用结构 #1 或 #2。
-
@Teemu 随意将其作为答案
标签: javascript iife