JavaScriptで辞書オブジェクトの作成例

1100 ワード

JavaScriptにとって、自身のArayオブジェクトは配列だけで、キーワードで保存データを取得することができません.jQueryソースは非常に良い方法でこの問題を解決するために提供されます.まずソースを見てください.
 
  
function createCache() {
 var keys = [];

 function cache(key, value) {
  // Use (key + " ") to avoid collision with native prototype
  // properties (see Issue #157)
  if (keys.push(key += " ") > Expr.cacheLength) {
   // Only keep the most recent entries
   delete cache[keys.shift()];
  }
  return (cache[key] = value);
 }
 return cache;
}

上記のソースコードはコンパイル結果のキャッシュを作成し、コードの呼び出し方法は以下の通りです.
 
  
var codecache = createCache();
ソースの中で、keysはキーを保存するために使用されますが、cacheオブジェクトはキーのペアを保存するために使用され、グローバル変数Expr.cache Lengthコントロールキーの最大数を通じて、この数を超えると、自動的に最初のキーとキーのペアを削除します.このコードは、クローズドされた構造を利用して、外部コードがkeys変数にアクセスできなくなり、keys変数の安全性を確保することができます.もちろん、JavaScript文の特徴のため、外部コードはcache属性を修正することによってキーとキーの値が一致しないようにすることができます.でも、故意にいたずらしない限り、これ自体はあまり関係ないはずです.
もちろん、完全なディベートオブジェクトを宣誓することはできません.キーの繰り返しの判断などのキー機能が提供されていないので、興味のある友達は完璧にできます.