数组重构之forEach

前置知识

数组方法:

      - 使用方式

        + 数组.方法名()

    1. 重构的方法需要写到 `数组空间` Array.prototype中

    2. 重构数组遍历方法 回调函数执行次数需要 根据调用方法的数组决定

      - 函数内的this关键字 指向 调用这个方法的数组

注意

我们在全局中直接定义函数,数组无法直接调用,原因是会报错: arr.fn is not a function

    数组的API方法都是在 `数组空间`中

      - 在这个`数组空间`中的方法,数组都可以直接使用

      - 这个 `数组空间` 是 Array.prototype,是一个对象

      - 如果我们将自己定义的函数 添加到这个 `数组空间`中

      - 那么数组就可以直接调用我们定义的函数了  

实现

  function myforEach(cb) {
    // cb接受传入的回调函数
    // 多次执行cb函数---根据arr1数组的长度
    // 此处的this关键字指向调用 方法的数组
    // 遍历this数组来执行cb函数
    for (var i = 0; i < this.length; i++) {
      // 调用cb
      // cb的第一个参数是数组元素
      // cb的第二个参数是数组元素的索引
      // cb的第三个参数是原数组(调用方法的数组本身)
      cb(this[i],i,this);      
    }    
  }

  // 将myforEach添加到 `数组空间` 中
  Array.prototype.myforEach = myforEach;


  // 数组可以直接调用myforEach方法
  var arr1 = ['a','b','c'];
  arr1.myforEach(function (item,index,arr2) {
    console.log( item,index,arr2 )
  })

  var arr3 = [1,2,3,4,5];
  arr3.myforEach(function (item,index,arr2) {
    document.write(item);
  })

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值