[英]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.