each

each(iterator) -> Hash

迭代处理 hash 中的“键/值”对。

实际上这是混入的 Enumerable 模块拥有的 each 方法。在这里列举出来是为了说明 iterator 的第一个参数的结构,以及遍历时是按照什么顺序对元素进行迭代的。

“键/值”对被传递作为 iterator 的第一个参数,它是一个具有两个属性的对象:

  1. key:“键”的名称,是一个 String
  2. value:与“键”相对应的值(有可能是 undefined)。

遍历时元素的顺序取决于浏览器,因为它依赖于原生的 for ... in 循环。虽然大多数现代的浏览器都会有固定的顺序, 但是也有例外的情况,因此,在你的脚本中不要期望元素的顺序总是一致的。

虽然迭代过程中会跳过 HashEnumerable 所固有的方法,但是 hash 中仍有可能具有函数值。 更准确的说法应该是:迭代时会跳过对象原型(原生的 prototype 属性)中的所有属性。

样例

var h = $H({ version: 1.5, author: 'Sam Stephenson' });
h.each(function(pair) { 
	alert(pair.key + ' = "' + pair.value + '"'); 
}); 

// 注意,提示框出现的顺序不一定跟下面一样
// --> 提示 'version = "1.5"' 和 'author = "Sam Stephenson"'