Javascript面向对象编程指南(六)——迭代器

我们来展示闭包在实现迭代方面的功能。

通常情况下,我们都知道如何用循环来遍历一个简单的数组,但是有的时候我们需要面对更复杂的数据结构,他们通常会有着与数组截然不同的序列规则,这时候就需要将一些“谁是下一个”的复杂逻辑封装成抑郁使用的next()函数,然后我们只需要简单的调用next()就能实现对相关的遍历操作了。

在下面的例子中,我们将依然通过简单数组,而不是复杂的数据结构来说明问题。该例子是一个接受数组输入的初始化函数,我们在其中定义了一个私有指针i,该指针会始终指向数组中的下一个元素。

function setup(x) {
  var i = 0;
  return function () {
    return x[i++];
  };
}

现在,我们只需要用椅子数据来调用setup(),就可创建出我们所需要的next()函数,具体如下:

var next = setup(['a','b','c']);

这是一种即简单又好玩的循环形式:我们只需要重复的调用一个函数,就可以不停的获取下一个元素。

next()  // 'a'
next()  // 'b'
next()  // 'c'
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容