Heim > Web-Frontend > js-Tutorial > Hauptteil

Können Sie in JavaScript dynamisch benannte Funktionen erstellen, ohne „eval()' zu verwenden?

Linda Hamilton
Freigeben: 2024-11-11 16:51:03
Original
332 Leute haben es durchsucht

Can You Create Dynamically Named Functions in JavaScript Without Using `eval()`?

Dynamische Funktionserstellung ohne Auswertung

Frage: Ist es möglich, eine Funktion mit einem zur Laufzeit bestimmten Namen zu erstellen? ohne auf eval() zurückzugreifen und nur reines JavaScript zu verwenden?

Antwort für ECMAScript 2015:

Ja, ES2015 führt eine Lösung ein. Anonyme Funktionsausdrücke, die Objekteigenschaften zugewiesen sind, erben jetzt den Eigenschaftsnamen als Funktionsnamen. Dies kann mit berechneten Eigenschaftsnamen kombiniert werden, was die Erstellung von Funktionen mit dynamischen Namen ermöglicht.

Beispiel:

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

console.log("Function's `name` property: " + f.name); // Logs: "foo###" (where ### is 1-3 digits)
Nach dem Login kopieren

In ES2015 stellt diese Methode sicher, dass die Funktion einen Namen hat und dass dieser erscheint in Stacktraces in Debuggern. Beachten Sie jedoch, dass Edge und Safari den Funktionsnamen möglicherweise nicht in Stacktraces anzeigen.

Das obige ist der detaillierte Inhalt vonKönnen Sie in JavaScript dynamisch benannte Funktionen erstellen, ohne „eval()' zu 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