作为IIFE的一部分创建的DOM元素会发生什么?

What happens to a DOM element created as part of an IIFE

本文关键字:什么 DOM IIFE 一部分 创建 作为 元素      更新时间:2023-09-26

假设我以以下方式执行一个函数:

function el(html) {
  return (function(parent){
    parent.innerHTML = html;
    return parent.childNodes[0];
  })(document.createElement('div'));
};
document.body.appendChild(el('<p>foo</p>'));
document.body.appendChild(el('<p>bar</p>'));

创建的元素(标签div作为IIFE的参数)会发生什么?如果我执行这个函数n次会不会留下n个孤儿DOM节点?

如果对象无法从GC根访问,则它们符合垃圾收集的条件。这也适用于DOM节点。

旁注:DocumentFragment或insertAdjacentHTML将是更习惯的方法来构建和附加html从字符串