实现call bind apply

阅读 72

2022-02-04

实现call

Function.prototype.newCall = function (obj) {
      obj = obj || window; //obj为空时就是window
      obj.f = this;  //给obj附加一个f方法,指向调用newCall的函数
      const array = Array.from(arguments);//将类数组对象数组化,方便用数组方法
      array.shift();//去掉第一个参数
      obj.f(...array); //将数组解构作为参数运行f方法
      delete obj.f;//保持obj的原样
    };

精彩评论(0)

0 0 举报