Heim > Web-Frontend > js-Tutorial > Warum ein leeres Array mit „.forEach.call()' in JavaScript verwenden?

Warum ein leeres Array mit „.forEach.call()' in JavaScript verwenden?

Barbara Streisand
Freigeben: 2024-10-25 00:42:30
Original
709 Leute haben es durchsucht

Why Use an Empty Array with `.forEach.call()` in JavaScript?

Verstehen des Verhaltens von [].forEach.call() in JavaScript

Dieses unkonventionelle Codefragment, bei dem ein leeres Array vor der forEach-Methode steht, hat Entwickler vor ein Rätsel gestellt . Schauen wir uns genauer an, wie es funktioniert.

Leeres Array – Ein Trick für den Zugriff auf Array-Prototypen

Das leere Array dient einem besonderen Zweck: Es bietet Zugriff auf Array-Prototypen wie .forEach. Durch die direkte Verwendung eines Arrays erhalten Sie diese Funktionalität, ohne dass Array.prototype.forEach.call(...); explizit geschrieben werden muss.

forEach – Iteration mit Anpassung

forEach ist eine Funktion, die übernimmt eine andere Funktion als Eingabe. Für jedes Element in einem Array-ähnlichen Objekt (z. B. einer Knotenliste) werden drei Argumente übergeben:

  • Das Element selbst
  • Der Index des Elements
  • Eine Referenz auf das Array-ähnliche Objekt

.call – Ändern dieses Kontexts

Mit der .call-Methode können Sie eine Funktion mit einem bestimmten Kontext aufrufen. In diesem Fall überschreibt es die Funktion der inneren Funktion mit der Knotenliste und stellt so sicher, dass die Funktion über den Index auf Elemente zugreifen kann.

Beispiel

Bedenken Sie Folgendes:

[1,2,3].forEach.call( document.querySelectorAll('a'), function(el) { /* logic */ });
Nach dem Login kopieren

Dieser Code verwendet das leere Array, um auf den .forEach-Prototyp zuzugreifen, übergibt die Knotenliste an forEach und iteriert über jedes Tag, der Zugriff auf das Element, seinen Index und die gesamte Knotenliste bietet.

Entlarvung von Bedenken hinsichtlich der funktionalen Programmierung

Während einige argumentieren, dass die Verwendung dieser Technik im Vergleich zur manuellen Schleife unelegant ist, dient sie doch ein Zweck, wenn Sie die Außenwelt (z. B. DOM) mehrmals ändern müssen, während Sie auf Element- oder Indexinformationen zugreifen.

Moderne Lösungen in ES6 und darüber hinaus

In modernen JavaScript-Versionen und mit Tools wie Babel, Sie können die Operatoren ... rest und spread verwenden, um ähnliche Funktionen sauberer zu erreichen. Die Grundprinzipien der Verwendung eines leeren Arrays für den Zugriff auf Array-Prototypen und der Änderung dieses Kontexts mit .call bleiben jedoch relevant.

Das obige ist der detaillierte Inhalt vonWarum ein leeres Array mit „.forEach.call()' in JavaScript verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage