das Symbol spec von hier Reading (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Symbol) sah ich, dass String.prototype
diese Liste der Schlüssel enthalten sollte:String.prototype nicht alle Symbole ES6 spec implementieren als Schlüssel
Symbol.match,
Symbol.replace,
Symbol.search,
... und andere
Aber als ich das in Chrome 51.0.2704.103 m getestet habe, stellte sich heraus, dass String.prototype
nur Symbol.iterator
als Schlüssel enthält.
Also was ich nicht richtig verstanden habe, soll String.prototype diese Symboltasten enthalten oder nicht?
Humm OK, aber ist es nicht der Punkt, dass diese bekannten Symbole (@@ iterator, @@ match ... und andere) genau als Schlüssel für Objekteigenschaften und Methoden verwendet werden sollen? Zumindest wird @@ iterator verwendet. Wie könnte @@ match in String.prototype.match verwendet werden? – Hivaga
@Hivaga: Sortieren von. Wie es im ersten Absatz des obigen Links heißt: * "Bekannte Symbole sind eingebaute Symbolwerte, auf die von Algorithmen dieser Spezifikation explizit Bezug genommen wird. Sie werden typischerweise als ** die Schlüssel von Eigenschaften verwendet, deren Werte als Erweiterung dienen Punkte eines Spezifikationsalgorithmus **. "* (meine Betonung)' @@ match' * wird * als Schlüssel an anderer Stelle verwendet, zum Beispiel in 'RegExp.prototype'. Wenn Sie ein bekanntes Symbol für "@@ Übereinstimmung" bereitstellen, können Sie jedes Objekt so definieren, dass es in der Lage ist, eine Übereinstimmung mit einem regulären Ausdruck zu erzielen. Es ist, was zum Beispiel durch die Zusammenfassung "IsRegExp" überprüft wird. –
(Entschuldigung, die Betonung sieht aus wie schreien. Das ist nicht so gemeint.) –