javascript - Wie verwende ich eine Aufruffunktion in JS?
我想大声告诉你
我想大声告诉你 2017-07-05 10:54:45
0
2
830
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

我想大声告诉你
我想大声告诉你

Antworte allen(2)
迷茫
简单的例子
     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]
    
     
     
过去多啦不再A梦

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

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

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

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!