Ich war schon immer mit Sprachen unterwegs und habe mit allem von C# über Lisp bis Scala bis Haskell gearbeitet, und in jeder Sprache, die sie unterstützte, haben sich die Symbole ziemlich ähnlich verhalten; Das heißt, zwei beliebige Symbole mit demselben Namen sind garantiert identisch, da sie Singleton-Objekte sind.Grundlegendes zu ES6-Symbolen
Racket: (equal? 'foo 'foo)
wahre
Common Lisp: (eq 'foo 'foo)
wahr
Rubin: :foo == :foo
wahr
Scala: 'foo == 'foo
wahr
ES6: Symbol('foo') === Symbol('foo')
falsch
Der Vorteil, dass Symbole Singletons sind, liegt auf der Hand: Sie können sie in Maps/Dictionaries verwenden, ohne zu riskieren, dass Ihr Schlüssel nicht mit Ihren Eingaben übereinstimmt, weil die Sprache plötzlich anders entschieden hat (Ruby)
Warum also? dass ECMAScript 6 einen anderen Ansatz verfolgt und wie kann ich es umgehen?
Warum 'sort-of' scheint ein guter Weg zu sein, um es" zu umgehen " –
@JaromandaX Nun, sie sind nicht in irgendeiner Weise beschränkt, aber ich denke, das ist der Fall für Symbole in einer anderen Sprache, die ich kenne (Erlang , Clojure, ... und das ist alles, woran ich gerade denken kann). – Pointy
Diese Antwort bezieht sich nicht auf das "Warum". – Ben