为什么jquery空函数如此复杂?

gdo*_*ica 2 html javascript jquery

我查看jQuery了该.empty()函数的源代码:

empty: function() {
        for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
            // Remove element nodes and prevent memory leaks
            if ( elem.nodeType === 1 ) {
                jQuery.cleanData( elem.getElementsByTagName("*") );
            }

            // Remove any remaining nodes
            while ( elem.firstChild ) {
                elem.removeChild( elem.firstChild );
            }
        }?
Run Code Online (Sandbox Code Playgroud)

只需将其更改innerHTML为空字符串就不会简单得多:

empty: function() {
        for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
                elem.innerHTML = "";
        }?
Run Code Online (Sandbox Code Playgroud)

empty 文档:

描述:从DOM中删除匹配元素集的所有子节点.

jAn*_*ndy 11

想想.data()expandos和事件处理程序......通过删除DOM,每次都会产生内存泄漏.