js创建字典对象实例

快乐打工仔 分类:实例代码

本章节介绍一下介绍一下如何创建字典对象。

虽然数组有点类似,但是它毕竟是一个数组无法提供通过关键字来获取保存的数据。

不过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;
}

上面的代码就是jQuery源码中的一段,调用方式如下:

var codecache = createCache();

源码中,keys用来保存键,而cache对象用来保存键值对,并通过全局变量Expr.cacheLength控制键的最大数量,若超过该数量,则自动删除第一个键及键值对。本代码利用了闭包的结构,使外部代码无法访问到keys变量,这样就能确保keys变量的安全性。

当然,由于JavaScript语句的特点,外部代码还是可以通过修改cache属性使键与键值对不匹配。

回复

我来回复
  • 暂无回复内容