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.length 20 } 21 } 22 } 23 } 24 });