使用ES5實現iterator遍歷器接口(遍歷器生成函數)

1.es5實現

	const obj = {
	  name: 'ha',
	  age: 12,
	  sex: 'man'
	};
	
	obj[Symbol.iterator] = function(){
	  let index = 0;
	  const keysArr  = Object.keys(this);
	  const _this = this;
	  return {
	    next: function () {
	      if (index < keysArr.length) {
	
	        return {
	          value: keysArr[index] + '--' + _this[keysArr[index++]],
	          done: false
	        }
	      } else {
	        return {
	          value: undefined,
	          done:true
	        }
	      }
	    }
	  }
	};
	
	
	
	console.log([...obj]);

  • 這裏閉包的作用就是記錄遊標的位置。

結果如下:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章