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对象,因为其未提供主键重复的判断等关键功能,有兴趣的朋友们可以完善它。
-
JavaScript与用户端教程
一页面输出1.头部文件复制代码代码如下:2.复制代码代码如下:3.外部文件4.利用页面ID的innerHtml复制代码代码如下:5.警告alert("广州百汇物流有限公司");6.询问复制代码代码如下:if(confirm("是否访问我们的首页")){alert("是的',前往");}else{alert("退出");}...
-
针对dom元素的分析应用
如果这个DOM元素没有样式也就谈不上操作了。2.我们也可以直接用JS动态的向html里写入DOM元素。今天这章我们就讲这两个应用(一)对html里现有的DOM元素进行操作。我上面说了,对现有的DOM元素进行操作,无非就是对样式的操作。所以我们首先就要能获取这个DOM元素的样...
-
如何理解Javascript的caller,callee,call,apply区别
在提到上述的概念之前,首先想说说javascript中函数的隐含参数:argumentsarguments该对象代表正在执行的函数和调用它的函数的参数。[function.]arguments[n]参数function:选项。当前正在执行的Function对象的名字。n:选项。要传递给Function对象的从0开始的参数值...
-
网页设计很糟糕的10个原因
个好的网页设计,不仅吸引眼球,也是实用的、直观的、层级简单却足够复杂到保持用户的兴趣。但是不好的网页设计是由很多原因造成的,下面是关于网页设计很糟糕的10个原因,欢迎阅读了解!没有足够的空白空白可以说是设计中最重要的一部分。它有助于防止用户在浏览网站时...
相关文章
- JavaScript如何实现JSON.stringify
- My Happy Times During Winter Vacation国中英语作文
- 有关JavaScript中的prototype.bind()方法介绍
- javascript中String对象的slice()方法
- 英语阅读:VIT declines to acquire Ang Mo Kio property
- Javascript中设立对象的ReadOnly属性
- 如何在Javascript中为String对象添加trim,ltrim,rtrim方法
- JavaScript在Android的WebView中parseInt函数转换不正确
- 好奇心与创造能力英语作文 Curiosity and creativity
- 国中英语写作范文:My Happy Times During Winter Vacation