JavaScript中创建字典对象(dictionary)实例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript中创建字典对象(dictionary)实例相关的知识,希望对你有一定的参考价值。

这篇文章主要介绍了javascript中创建字典对象(dictionary)实例,本文直接给出了实现的源码,并给出了使用示例,需要的朋友可以参考下

对于JavaScript来说,其自身的Array对象仅仅是个数组,无法提供通过关键字来获取保存的数据,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.cacheLength控制键的最大数量,若超过该数量,则自动删除第一个键及键值对。
本代码利用了闭包的结构,使外部代码无法访问到keys变量,这样就能确保keys变量的安全性。当然,由于JavaScript语句的特点,外部代码还是可以通过修改cache属性使键与键值对不匹配。不过,只要不故意恶搞,这本身应该也没有太大的关系。

当然,它也不能宣誓一个完善的dictionary对象,因为其未提供主键重复的判断等关键功能,有兴趣的朋友们可以完善它。

以上是关于JavaScript中创建字典对象(dictionary)实例的主要内容,如果未能解决你的问题,请参考以下文章

从字典列表中创建嵌套的 json 对象

目标 C:从字典错误中创建一个 json 对象。字典值只能是字符串

使用 Counter 对象从两个列表中创建字典

使用DictMixin在Python中创建类似字典的对象

如何在现有对象中创建javascript对象[重复]

如何在 Javascript 中创建查询参数?