gpt4 book ai didi

javascript - 解释: jQuery Caching Code

转载 作者:搜寻专家 更新时间:2023-11-01 05:12:29 25 4
gpt4 key购买 nike

snippet of code如果先前已选择元素,则将从缓存中返回一个元素,或者选择、缓存并返回该元素。它对于更新从未发生显着变化的元素的内容很有用(即,用户看到的计数器的父级,其中数字发生变化但父级没有)。代码如下:

var $$ = (function() {
var cache = {};
return (function (selector) {
return cache[selector] || ( cache[selector] = jQuery (selector) );
});
})();

你可以这样使用它:

$$('#id')


现在……这到底是怎么回事? $$ 如何访问 jQuery 选择器?它与以 $ 开头的 $$ 无关,您也可以使用 var foo$$ 如何将传递给它的内容映射到 selector。我希望在 $$ 中看到 var selector = argumentName。另外,在我看来 $$ 似乎没有设置为接收参数(例如 function(input){} ),但它很容易接收参数吗?

这一小段代码让我非常困惑,如果能清晰一些,我将不胜感激。谢谢!

最佳答案

这很简单。这是等效的代码,但在解压缩版本中以使其更明确:

function generateCachingJQuery() {
var cache = {};
function queryFunc(selector) {
if (cache[selector]) {
return cache[selector];
}
else {
cache[selector] = jQuery(selector); //same as $(selector)
return cache[selector];
}
}
return queryFunc;
}
var $$ = generateCachingJQuery();

如果您注意到,首先您有一个匿名函数 - 我在这里命名为 generateCachingJQuery - 它返回 $$ 最终成为的函数。这样做是为了让内部函数(此处名为 queryFunc)可以访问 cache 变量。其余的只是一个单行文件,我在这里解压它以使其更清楚它在做什么。

编辑:需要明确的是,$$ 在上面的代码中最终变成了 queryFunc,而不是 generateCachingJQuery。请注意,queryFuncselector 作为变量。

关于javascript - 解释: jQuery Caching Code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18554618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com