1. // const arr = [1, 2, 3, 4, 5];
    2. // const _entries = arr.entries(); //迭代器对象必须要有next方法
    3. // console.log(_entries);
    4. // // 数组其实就是一个特殊的对象。 key键名就是一个从0开始有序递增的数字。
    5. // // 按顺序对应上数组的每一个元素。
    6. // var o = {
    7. // a: 1,
    8. // b: 2,
    9. // c: 3,
    10. // length:3
    11. // // [Symbol.iterator]:Array.prototype[Symbol.iterator] 继承了数组的Symbol.iterator 就不会报错
    12. // }
    13. // //for of 用来遍历可迭代对象。
    14. // // for(let v of o){
    15. // }
    16. // // 报错 o 要是没有iterator 就会这样 是不可迭代对象;
    17. // // 让类数组变成数组 Array.from
    18. // //
    19. // //
    20. // //
    21. 'use strict'
    22. Array.prototype.myEntries = function (){
    23. console.log(this);
    24. var obj = Object(this),
    25. len = obj.length >>> 0;
    26. if(this == null){
    27. throw new TypeError('类型错误')
    28. }
    29. function *gen (arr){
    30. for(var i = 0; i < len + 1; i ++){
    31. yield [i,arr[i]]
    32. }
    33. return false
    34. }
    35. return gen(obj);
    36. }