Heim > Web-Frontend > js-Tutorial > JavaScript-Abschluss Teil 3: Verwendung von Abschlüssen

JavaScript-Abschluss Teil 3: Verwendung von Abschlüssen

黄舟
Freigeben: 2016-12-20 16:11:10
Original
1188 Leute haben es durchsucht

In der Praxis können Verschlüsse zu sehr eleganten Designs führen, die eine individuelle Anpassung der verschiedenen auf funarg definierten Berechnungsmethoden ermöglichen. Das Folgende ist ein Beispiel für die Array-Sortierung. Es akzeptiert eine Sortierbedingungsfunktion als Parameter:

[1, 2, 3].sort(function (a, b) {
  ... // 排序条件
});
Nach dem Login kopieren

Für das gleiche Beispiel ordnet die Map-Methode des Arrays das ursprüngliche Array einem neuen basierend auf zu In der Funktion definierte Bedingungen:

[1, 2, 3].map(function (element) {
  return element * 2;
}); // [2, 4, 6]
Nach dem Login kopieren

Mithilfe von Funktionsparametern können Sie problemlos eine Suchmethode implementieren und unbegrenzte Suchbedingungen unterstützen:

someCollection.find(function (element) {
  return element.someProperty == 'searchCondition';
});
Nach dem Login kopieren

Es gibt auch Anwendungsfunktionen , wie Die gemeinsame forEach-Methode wendet die Funktion auf jedes Array-Element an:

[1, 2, 3].forEach(function (element) {
  if (element % 2 != 0) {
    alert(element);
  }
}); // 1, 3
Nach dem Login kopieren

Übrigens können die Apply- und Call-Methoden des Funktionsobjekts auch als Anwendungsfunktionen in der funktionalen Programmierung verwendet werden. Hier betrachten wir sie als Anwendungsfunktionen – Funktionen, die auf Parameter angewendet werden (eine Parameterliste in „Anwenden“, ein unabhängiger Parameter in „Aufruf“):

(function () {
  alert([].join.call(arguments, ';')); // 1;2;3
}).apply(this, [1, 2, 3]);
Nach dem Login kopieren

Es gibt noch einen weiteren Abschluss. Sehr wichtige Anwendung – verzögerter Aufruf:

var a = 10;
setTimeout(function () {
  alert(a); // 10, after one second
}, 1000);
Nach dem Login kopieren

und Rückruffunktion:

//...
var x = 10;
// only for example
xmlHttpRequestObject.onreadystatechange = function () {
  // 当数据就绪的时候,才会调用;
  // 这里,不论是在哪个上下文中创建
  // 此时变量“x”的值已经存在了
  alert(x); // 10
};
//...
Nach dem Login kopieren

Sie können auch einen gekapselten Bereich erstellen, um Hilfsobjekte auszublenden:

var foo = {};
 
// 初始化
(function (object) {
 
  var x = 10;
 
  object.getX = function _getX() {
    return x;
  };
 
})(foo);
 
alert(foo.getX()); // 获得闭包 "x" – 10
Nach dem Login kopieren

Zusammenfassung

In diesem Artikel wird mehr theoretisches Wissen über ECMAScript-262-3 vorgestellt, und ich denke, dass diese grundlegenden Theorien hilfreich sind, um das Konzept des Abschlusses in ECMAScript zu verstehen.

Das Obige ist der Inhalt des JavaScript-Abschlusses Teil 3: Die Verwendung des Verschlusses. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Verwandte Etiketten:
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
Aktuelle Ausgaben
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage