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属性使键与键值对不匹配。