我有几个关于John Resig在http://ejohn.org/apps/learn/#19中练习#19的函数的问题。
第二个最后一行
getElements.cache = {};
的目的是什么?它是否将return results
存储在数组中?如果我的猜测(1)正确,那么它只能捕获
return results
,因为在函数的“else”部分中,getElements.cache[name] = results;
吗?当我在教程的控制台中使用代码时,我从“else”部分中删除了
getElements.cache[name] = results
这一行,但仍然得到了与存在该行相同的结果--也就是说,它告诉我有76个元素。因此,如果不需要该结果,getElements.cache[name] = results
这一行的目的是什么?在函数的“else”部分中,
getElements.cache[name] = results;
这一行的顺序是否具有重要意义?在代码的“if”部分中,它说results = getElements.cache[name]
最后,
cache
是JavaScript中预定义的函数吗?我在文档中找不到它。
function getElements( name ) {
var results;
if ( getElements.cache[name] ) {
results = getElements.cache[name];
} else {
results = document.getElementsByTagName(name);
getElements.cache[name] = results;
}
return results;
}
getElements.cache = {};
log( "Elements found: ", getElements("pre").length );
getElements.cache[name]
,因为该函数尚未具有cache
属性。但我认为可以通过仅使用getElements[name]
来省略缓存属性。 - Gnijuohz