es6 iterator迭代器底层代码实现

ES6 Symbol-iterator接口机制

	1、为各种数据结构,提供一个统一的访问接口
	2、使得数据结构的成员能够按某种次序排列
	3、因为es6创建了for..of循环,iterator接口主要为for...of提供

	使用
	1、创建遍历器对象
	2、调用next方法,第一次调用会指向起始值,之后会逐渐向后移动,返回包含当前值和布尔值,布尔值表示是否遍历结束

代码示例:

<html ng-app='app' ng-controller='main' >
<head>
	<meta charset="utf-8">
	<meta name='viewport' content='width=device-width,user-scalable=no,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0'>

	<script src='jq/jquery-3.4.1.js'></script>

	<style>

	</style>
</head>
<body >


<script>
	function fun(arr)
	{
		let index=0;
		return {//遍历器对象
			next:function(){
				//闭包
				return index<arr.length ?{value:arr[index++],done:false}:{value:undefined,done:true};
			}

		}
	}
	//准备数据
	let arr=[1,2,3,4];
	let ite=fun(arr);
	console.log(ite.next());
	console.log(ite.next());
	console.log(ite.next());
	console.log(ite.next());
	console.log(ite.next());
	

</script>
</body>
</html>
发布了387 篇原创文章 · 获赞 3 · 访问量 9146

猜你喜欢

转载自blog.csdn.net/weixin_43294560/article/details/104182817