ここから取得したこの関数 ( http://ejohn.org/apps/learn/#19 )、外部関数の後に渡された値の「記録」を保持する内部関数はありませんが、終わり、ある種のデータキャッシングがあります。実際、キャッシュ プロパティの値は、関数の呼び出し後も保持されます。これはクロージャーの一種なのだろうか:
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 = {};
関数のプロパティに適用されるのか、参照される関数のみに適用されるのかはわかりません。私はまだ閉鎖についてあまりにも混乱しているので、ナンセンスを話しているのかもしれません.