繁体   English   中英

有关执行JS代码的问题

[英]Question regarding execution of JS code

我刚遇到以下代码:

foo = (function() {
    var div = document.createElement('div');
    return function(html) {
        div.innerHTML = html;
        var item = div.firstChild;
        div.removeChild(item);
        return item;
    };
})();

它被这样使用:

var element=foo('<table><tr><td></td></tr><table>');

我注意到上面的代码返回了JavaScript元素。 我不知道只能用这个做吗-

var element=$('<table><tr><td></td></tr><table>')[0];

原始JS函数实际上到底在做什么? 使用此var div = document.createElement('div');有什么好处 在退货声明之外?

它会一次创建一个div文档元素,并将其缓存在函数范围内,以供将来执行此方法,因此不必每次调用该函数时都创建它。

这是一种称为“延迟初始化”的微优化模式-您可以在此处http://en.wikipedia.org/wiki/Lazy_initialization了解更多信息

要回答第二个问题-是的,您在jQuery中显示的内容将为您提供完全相同的输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM