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>