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 ((key += " ") > eLength) {
// Only keep the most recent entries
cache[t()];
}
return (cache[key] = value);
}
return cache;
}
上述源码是创建一个编译结果的缓存,代码调用方式如下:
复制代码 代码如下:
var codecache = createCache();
源码中,keys用来保存键,而cache对象用来保存键值对,并通过全局变量eLength控制键的最大数量,若超过该数量,则自动删除第一个键及键值对。
本代码利用了闭包的`结构,使外部代码无法访问到keys变量,这样就能确保keys变量的安全性。当然,由于JavaScript语句的特点,外部代码还是可以通过修改cache属性使键与键值对不匹配。不过,只要不故意恶搞,这本身应该也没有太大的关系。
当然,它也不能宣誓一个完善的dictionary对象,因为其未提供主键重复的判断等关键功能,有兴趣的朋友们可以完善它。
-
Dreamweaver跳转菜单的方法技巧介绍
什么是跳转菜单:跳转菜单是文档内的弹出菜单,对站点访问者可见,并列出链接到文档或文件的选项。可以创建到整个Web站点内文档的链接、到其它Web站点上文档的链接、电子邮件链接、到图形的链接,也可以创建到可在浏览器中打开的`任何文件类型的链接以下是小编为大家...
-
PHP开发工程师的具体职责
PHP开发工程师的具体职责1职责:1,负责设计产品的前后台技术框架;2,承担系统的开发工作,改进框架,基础架构,持续优化服务;3,承担关键项目的技术评审及总体设计,参与构建系统原型及关键技术问题的攻关活动;4,控制产品设计质量,制定产品开发规范、指导或撰写方案、设计等文档;5,...
-
如何理解Javascript的caller,callee,call,apply区别
在提到上述的概念之前,首先想说说javascript中函数的隐含参数:argumentsarguments该对象代表正在执行的函数和调用它的函数的参数。[function.]arguments[n]参数function:选项。当前正在执行的Function对象的名字。n:选项。要传递给Function对象的从0开始的参数值...
-
javascript中setInterval的用法总结
javascript中的setInterval的函数主要是在制作动画或其他间隔性渲染(操作)效果时,对操作方法按照一定时间间隔进行调用的函数。setInterval的表达式格式主要有:setInterval(fnname,time,par1,par2,);setInterval(obj,fnname,time,par1,par2,);第一种是最常见的表达...
相关文章
- javascript中String对象的slice()方法
- JavaScript在Android的WebView中parseInt函数转换不正确
- 英语阅读:VIT declines to acquire Ang Mo Kio property
- JavaScript如何实现JSON.stringify
- Javascript中设立对象的ReadOnly属性
- My Happy Times During Winter Vacation国中英语作文
- 如何在Javascript中为String对象添加trim,ltrim,rtrim方法
- 有关JavaScript中的prototype.bind()方法介绍
- 好奇心与创造能力英语作文 Curiosity and creativity
- 国中英语写作范文:My Happy Times During Winter Vacation