// if(index > arr.length - 1){ // return { // done: true, // value: undefined // } // }
// return { // done: false, // value: arr[this.index++] // } // }; // }
// let arr = [10,20,30]; // let itor = new Iterator(arr); // console.log(itor.next()); // {done: false, value: 10} // console.log(itor.next()); // {done: false, value: 20} // console.log(itor.next()); // {done: false, value: 30} // console.log(itor.next()); // {done: true, value: undefined}
// let arr = [10,20,30]; // arr[Symbol.iterator] = function(){ // let index = 0, // self = this; // return { // next(){ // if(index > self.length -1){ // return { // done:true, // value:undefined // } // } // return { // done:false, // value:self[index++] // } // } // } // } // for(let item of arr){ // console.log(item); // }
/** * 对象类数组使用for of 遍历 */
// let obj = { // 0:10, // 1:20, // 2:30, // 3:40, // length:4, // [Symbol.iterator]:Array.prototype[Symbol.iterator] // // [Symbol.iterator]:function(){ // // let index = 0, // // self = this; // // return { // // next(){ // // return index > self.length -1 ? { // // done:true, // // value:undefined // // } : { // // done:false, // // value: self[index++] // // } // // } // // }; // // } // }
// for(let item of obj){ // console.log(item); // }
// Object.prototype.sex = '男'; // Object.prototype[Symbol.iterator] = function(){ // let self = this, // index = 0, // keys = [ // ...Object.getOwnPropertyNames(self), // ...Object.getOwnPropertySymbols(self) // ]; // return { // next(){ // return index > keys.length - 1 ? { // done:true, // value:undefined // } : { // done:false, // value:self[keys[index++]] // } // } // } // }
// // 遍历对象 // let obj = { // name:'Eric', // age:11, // [Symbol('AA')]:100 // }
// for(let item of obj){ // console.log(item); // }
// console.log(obj);
</script> </body> </html>