1 /*** 2 * 自定义对象属性迭代器 3 * @type { {a: string, b: string}} 4 */ 5 var obj = {a: "JavaScript", b: "Java"}; 6 7 Object.defineProperty(obj, Symbol.iterator, { 8 writable: false, 9 configurable: true,10 enumerable: false,11 value: function () {12 var self = this;13 var index = 0;14 var keys = Object.keys(self);15 return {16 next: function () {17 return {18 value: self[keys[index++]],19 done: index > keys.length20 }21 }22 }23 }24 });