Heim > Web-Frontend > js-Tutorial > Verwendung der Currying-Funktion zur Implementierung der Bind-Methode in Javascript_Javascript-Kenntnissen

Verwendung der Currying-Funktion zur Implementierung der Bind-Methode in Javascript_Javascript-Kenntnissen

WBOY
Freigeben: 2016-05-16 15:03:09
Original
1205 Leute haben es durchsucht

Ke Lihuas Funktionsidee: Eine Idee der js-Vorverarbeitung, die das Prinzip der Funktionsausführung nutzt, um einen nicht zerstörten Bereich zu bilden und den gesamten Inhalt zu speichern, der vorab verarbeitet werden muss. Wird in diesem nicht zerstörten Bereich verarbeitet und gibt eine kleine Funktion zurück. In der kleinen Funktion können wir relevante Operationen an den zuvor gespeicherten Werten ausführen Die Curry-Funktion spielt hauptsächlich eine Vorverarbeitungsrolle
Die Rolle der Bindungsmethode:
Dies in der als Kontextkontext übergebenen Rückrufmethode vorverarbeiten;

/**
* bind方法实现原理1
* @param callback [Function] 回调函数
* @param context [Object] 上下文
* @returns {Function} 改变this指向的函数
*/
function bind(callback,context) {
 var outerArg = Array.prototype.slice.call(arguments,2);// 表示取当前作用域中传的参数中除了fn,context以外后面的参数;
 return function (){
  var innerArg = Array.prototype.slice.call(arguments,0);//表示取当前作用域中所有的arguments参数;
  callback.apply(context,outerArg.concat(innerArg));
 }
}

Nach dem Login kopieren
 /**
* 模仿在原型链上的bind实现原理(柯理化函数思想)
* @param context [Object] 上下文
* @returns {Function} 改变this指向的函数
*/
Function.prototype.mybind = function mybind (context) {
 var _this = this;
 var outArg = Array.prototype.slice.call(arguments,1);
 // 兼容情况下
 if('bind' in Function.prototype) {
  return this.bind.apply(this,[context].concat(outArg));
 }
 // 不兼容情况下
 return function () {
  var inArg = Array.prototype.slice.call(arguments,0);
  inArg.length === 0?inArg[inArg.length]=window.event:null;
  var arg = outArg.concat(inArg);
  _this.apply(context,arg);
 }
}
Nach dem Login kopieren
Das Obige ist der relevante Code für die Verwendung der Currying-Funktion zur Implementierung der Bind-Methode. Ich hoffe, dass er für alle beim Erlernen der Javascript-Programmierung hilfreich ist.
Verwandte Etiketten:
js
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage