Mootools 1.2教程(14)——定时器和哈希简介(2)
作者:Fdream 来源:Fdream博客 发布时间:2008-12-08 12:50:00
Hash快速入门
创建一个hash
在上面的例子中,可能有一些东西是你从来没有见过的。首先,我们使用了hash。hash是一个由键值对(key/value)组成的集合,它和一个包含许多对象的数组类似,不过这些对象都只有一个属性。我们先来看一下如何建立一个hash:
参考代码:
var hashVar = new Hash({
'firstKey': 0,
'secondKey': 0
});
你需要把键(key)放在左边,而值(value)放在右边(除了那些对hash很熟悉的人外,我们只讲一些关于hash最基本的东西,我们会在以后将类时再来讲hash的存储功能)。不管怎样,使用和这类似的系统还是又很多好处的。首先,你可以在一个对象中存储多个集合,存取变得容易得多,对于组织复杂的数据组织起来。
.set()方法和.get()方法
你也可以在hash中使用你熟悉的.set()和.get()方法。当你需要设置的时候,你声明一个键(key),然后是你要设置的值。当你需要获取的时候,你值需要声明你要获取的键(key)就行了。就这么简单。
参考代码:
// 还是使用上面的hash
// 这里我们设置firstKay的值为200
hashVar.set('firstKey', 200);
// 这里我们获取firstKey的值,现在是200
var hashValue = hashVar.get('firstKey');
你可以可以通过引用hash.键名来获取一个值:
参考代码:
var hashValue = hashVar.firstKey;
// 上面的和下面的一样
var hashValue = hashVar.get('firstKey');
添加一个新的键值对到hash中
.extend();方法
你可以通过.extend();方法来添加一个或者多个新的键值对(key/value pair)集合到hash中。首先,我们要创建一个新的键值对对象。
参考代码:
// 这是一个普通的对象
// 它包含键值对(key/value pairs)
// 但是没有hash的功能
var genericObject = {
'third': 450,
'fourth': 89
};
如果我们要把这个集合加入到我们已经存在的hash中,我们只需要使用.extend();方法来扩展hash就行了:
参考代码:
//现在hashVar包含了genericObject中的所有键值对
hashVar.extend(genericObject);
注意:任何重复的键都将会被后面的设置覆盖掉。因此,如果你在原始的hash中有"firstKey":"letterA"这样一对,然后你又扩展了一对"firstKey":"letterB",这样你在hash中的读取结果将是"firstKey":"letterB"。
合并两个hash
.combine();方法
这个方法可以让你合并两个hash对象,如果有重复的键将保留原始的值。其余的则和.extend()方法一样。
从hash中删除一个键值对
.erase();方法
我们已经见过这个方法一次了。它的工作就和你期望的那样。你声明一个hash,然后在后面副加上.erase();,最后你再把“键”(key)放在括号里面。
参考代码:
hashVar.erase('firstKey');
hash和.each()方法
hash和.each()方法又一种特别的关系,当你遍历一个hash的时候,遍历的函数将把“值”(value)作为第一个参数传递,而把“键”(key)作为第二个参数传递——这和你在数组上使用.each的时候一样,它把每个“项”(item)作为第一个参数。
参考代码:
hashVar.each(function(value, key) {
// 这将为hash中的每一个键值对弹出一个对话框
alert(key + ":" + value);
});
更多学习
我们目前为止要讲的关于hash的内容就这么多了。由于这个系列教程中我们会更深入的学习,在以后我们将找一些机会来讲有关hash的更多功能。但是现在,如果你是初学者,我们只是希望你能对hash有一个基本的概念。很快我们就要讲解类(class)了,那个时候所有的东西才会串连起来。同时,阅读一下文档中有关hash的这一节。
远程下载:下载一个包含你开始所需要的所有东西的zip包(44.54 KB)
asp之家下载地址:mootorial_day14_periodical.zip (44.54 KB)
包括MooTools 1.2的核心库,上面的示例,一个外部的JavaScript文件,一个简单的HTML页面和一个CSS文件。


猜你喜欢
- python将数据换为txt的方法有很多,可以用xlrd库实现。本人比较懒,不想按太多用的少的插件,利用已有库pandas将excel文件转
- 本文实例为大家分享了vue实现表单录入的具体代码,供大家参考,具体内容如下最终效果:代码:<template> <div
- 在一众有趣的Python库中,TQDW也算是独树一帜了,原因主要是因为自身所存在的功能效果,比如我们如果在写项目,往往会忘记我们要完成多少量
- SQL2005安装安装步骤安装Microsoft SQL Server 2005 数据库步骤:第一步:将Microsoft SQL Serv
- <?php /** 默认首页 **/ class DefaultController extends AppController {
- 元组的创建tuple=() #创建一个空元组print(tuple)print(type(tuple))输出:()<class
- 之前已经写过一篇关于Django外键的文章,但是当时并没有介绍如何根据外键对数据的操作,也就是如何通过主表查询子表或者通过子表查询主表的信息
- 因为javascript的事件模型有三种,它们分别是NN4、IE4+和W3C/Safari;这也造成了在不同的浏览器中处理event的差异,
- 1 报错类似如下数据库错误: Error querying database. Cause: java.sql.SQLSynta
- 数据库服务器主要用于存储、查询、检索企业内部的信息,因此需要搭配专用的数据库系统,对服务器的兼容性、可靠性和稳定性等方面都有很高的要求。下面
- 引言对MySQL数据库的查询,除了基本的查询外,有时候需要对查询的结果集进行处理。例如只取10条数据、对查询结果进行排序或分组等等。一、常用
- mysql版本号是5.7.28,表A有390W条记录,使用InnoDB引擎,其中varchar类型字段mac已建立索引,索引方法为B-tre
- python 代码如下:# -*- coding:utf-8 -*-import pandas as pdimport pymysqlimp
- 本篇文章通过使用python实现对计算机摄像头的调用从而实现摄像监控的功能。利用opencv的图像处理功能可以轻松对计算机摄像头的调用实现实
- 别误会,IE是不支持CSS3高级选择器,包括最新的IE8(详见《CSS选择器的浏览器支持》),但是CSS选择器的确是很有用的,它可以大大的简
- 本文先比较range与arange的异同点,再详细介绍各自的用法,然后列举了几个简单的示例,最后对xrange进行了简单的说明。1. ran
- 我之前写过一篇基于JS的石头剪子布程序 《JavaScript实现的石头剪刀布游戏源码分享》,今天又基于Python写了一个实例,这里边的算
- HTML转PDF:1.页面底层实现——Vue:最低兼容ie102.实现思路:1> 使用html2canvas.js将网页转换为图片2&
- 1、PRIMARY KEY上期我们讲述了 not null 和 unique 约束,而本期的第一个约束就是这俩的结合体,也成为主键约束。主键
- 一、super( ) 的用途了解 super() 函数之前,我们首先要知道 super() 的用途是啥?主要用来在子类中调用父类的方法。多用