Heim > Web-Frontend > js-Tutorial > Wie erstelle ich Funktionen mit laufzeitbestimmten Namen in JavaScript (ohne Auswertung)?

Wie erstelle ich Funktionen mit laufzeitbestimmten Namen in JavaScript (ohne Auswertung)?

Linda Hamilton
Freigeben: 2024-11-12 08:34:01
Original
336 Leute haben es durchsucht

How to Create Functions with Runtime-Determined Names in JavaScript (Without Eval)?

Erstellen von Funktionen mit laufzeitbestimmten Namen (ohne Auswertung)

In JavaScript ist das Erstellen von Funktionen mit laufzeitbestimmten Namen in ECMAScript 2015 möglich und später unter Verwendung von zwei Schlüsselfunktionen: anonyme Funktionsausdrücke und berechnete Eigenschaften Namen.

ES2015-Lösung:

In ES2015 erben anonyme Funktionsausdrücke, die Objekteigenschaften zugewiesen sind, den Namen dieser Eigenschaft. Dies ermöglicht uns:

const dynamicName = "foo" + Math.floor(Math.random() * 1000);
const obj = {
  [dynamicName]() {
    throw new Error();
  },
};
const f = obj[dynamicName];

// Demonstrate function's name property
console.log("Function's `name` property: " + f.name);

// Exception handling reveals the name in stack traces
try {
  f();
} catch (e) {
  console.log(e.stack);
}
Nach dem Login kopieren

In diesem Code:

  • dynamicName bestimmt den Namen der Funktion dynamisch.
  • obj ist ein Objekt mit einer Eigenschaft namens DynamicName.
  • Der der Eigenschaft „dynamicName“ zugewiesene anonyme Funktionsausdruck erbt indirekt die Name.

Kompatibilitätshinweis:

Beachten Sie, dass alle modernen Browser die Funktionalität implementieren, Edge und Safari den zugewiesenen Namen jedoch nicht in Stacktraces anzeigen.

Das obige ist der detaillierte Inhalt vonWie erstelle ich Funktionen mit laufzeitbestimmten Namen in JavaScript (ohne Auswertung)?. 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