Frage

Warum bringt das nichts?

console.log(JSON.stringify(function(){console.log('foobar');}));
War es hilfreich?

Lösung

JSON kann Funktionen überhaupt nicht in Strings umwandeln, sondern behandelt sie genauso undefined oder null Werte.Den genauen Algorithmus können Sie unter überprüfen EcmaScript 5.1 §15.12.3, siehe auch die Beschreibung bei MDN.

Sie können Funktionsausdrücke jedoch natürlich in Strings umwandeln, indem Sie sie in einen String umwandeln. Versuchen Sie es

console.log("" + function(){console.log('foobar');})

Andere Tipps

JSON hat keine Mittel, um eine Funktion darzustellen.Es ist ein Datenformat, das für die Einfachheit und Kompatibilität in der gesamten Sprache ausgelegt ist (und eine Funktion ist das Letzte, was zuletzt ist, der kreuzsprache kompatibel ist).

aus den docs für json.stringify :

wenn undefiniert, eine Funktion oder ein XML-Wert wird während der Umwandlung entweder weggelassen (wenn es in einem Objekt gefunden wird) oder zensiert auf Null (wenn es in einem Array gefunden wird).

Sie können das nicht tun, aber es gibt einige Bibliotheken von Drittanbietern, die Ihnen helfen können. Wie: https://www.npmjs.com/package/json-fn

Wenn Sie den generakodicetagcode verwenden möchten, um auch Funktionen und native Objekte zu konvertieren, können Sie eine Konverter-Funktion als zweites Argument weitergeben: generasacodicetagpre.

GRENZERACDICETAGCODECODE RÜCKEN DER CONVERTER-Funktion, wenn Sie das Ergebnis weglassen möchten.

Der dritte Parameter ist, wie viele Räume Sie möchten, dass die Ausgabe von der Ausgabe (optional) sucht.

yourFunctionName.toString(); erscheint auch eine Funktion

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top