Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Wie verwende ich eine Aufruffunktion in JS?

var currying = function(fun) {
      //底下这句代码是什么意思?
    var args = Array.prototype.slice.call(arguments, 1);
      return function() {
         //底下这句代码也不怎么清楚
          var _args = args.concat(Array.prototype.slice.call(arguments));
          return fun.apply(null, _args);
      };
}

Können Sie erklären, was der Code dieser Funktion bedeutet? Ich habe Baidus Call-Methode und Slice-Methode ausprobiert, konnte es aber nicht herausfinden, als sie kombiniert wurden und das Argumentobjekt der Funktion hinzugefügt wurde. Ich bin ein Neuling, daher verstehe ich einige Konzepte nicht sehr gut

我想大声告诉你我想大声告诉你2684 Tage vor866

Antworte allen(2)Ich werde antworten

  • 迷茫

    迷茫2017-07-05 10:56:45

    简单的例子
         var aa=[1,2,3],bb={0:1,1:2,2:3,length:3};
         aa.slice(1)//[2,3],此时的slice上的this就是指的aa的
         //bb是对象没有slice方法,又想得到[2,3]该怎么办?
         aa.slice.call(bb,1)//[2,3]
        
         
         

    Antwort
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-07-05 10:56:45

    别百度了,直接mdn看吧 https://developer.mozilla.org...

    var args = Array.prototype.slice.call(arguments, 1);

    arguments 是一个类数组对象,而非数组,不一定有数组的slice方法,所以用call方法来使得arguments对象能跟数组一样调用slice方法。

    Antwort
    0
  • StornierenAntwort