Frage

ich mit einer Linguistik Javascript Projekt bin Dilettantismus. Ich möchte es bauen Objekte mit Substantiven und Funktionen darzustellen Verben zu speichern, wie dies mein Projekt weniger schwierig macht Konzeptualisierung. Ich verwende Funktionen als Schlüssel zu einem Objekt (Ich habe ein Beispiel unten geschrieben). Wird es möglich sein, dies mit JSON serialisiert werden, wenn es darum geht, die Daten zu speichern.

function verbFn() {
   //do something
}

var nouns = {};

nouns[verbFn] = 'some value';

In diesem Beispiel wird JSON der Lage sein, "Substantive" serialisiert werden?


Uh ... nach auf meiner ursprünglichen Frage zu reflektieren und Lese die Kommentare Ich bin zu dem Schluss gekommen, dass die Dinge so zu tun, nur versuchen, sehr falsch und dumm.

War es hilfreich?

Lösung

Nein, JSON kann dies nicht tun. Die Tasten haben Strings in doppelten Anführungszeichen sein.

Auch sieht es aus wie Sie nicht tatsächlich die Funktion als Schlüssel - es in eine Zeichenfolge konvertiert ist wird:

<script>

var x = {};
x[window.open] = true;

for (var i in x)
    alert(typeof i + '\n' + i); // typeof i == string

</script>

Andere Tipps

Nach dem Standards rel="nofollow nicht können Sie nicht. Der Schlüssel muss eine Zeichenfolge sein

Sie sind nicht wirklich funktioniert als Schlüssel verwenden - Sie die Zeichenfolge Umwandlung einer Funktion als Schlüssel verwenden, die auch verlässt sich implizit auf diese Zeichenfolgendarstellungen einzigartig zu sein. Für Plattformen, die decompiling Funktionen unterstützen dies funktioniert gut, aber theoretisch könnte es Implementierungen, die nur zurückgeben „[Funktion]“, die in Ihrem Fall ziemlich schlecht sein würde.

JSON ist eine Datenstruktur Syntax. Eine Funktion ist die Daten nicht, so gibt es keine Möglichkeit, sie als Teil einer Datenstruktur serialisiert werden können (Schlüssel oder auf andere Weise). Unabhängig von Sprache, Implementierung oder was auch immer.

Nein, Schlüssel sollten immer Strings und nichts anderes sein. Siehe die Standardbeschreibung .

Und nouns ist kein Array, es ist Karte, Hash-Tabelle, assoziatives Array, "Objekt", einer von denen, was auch immer Namen, den Sie bevorzugen.

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