Betrachten wir diesen Code:
%Vor%Fragen
Bitte fügen Sie Referenzen zu Ihren Antworten hinzu.
Demo .
a
und b
sind effektiv identisch (sie haben die gleichen Eigenschaften, mit den gleichen Werten, an den gleichen Stellen). c
ist komplett anders. Sie können einen deutlichen Unterschied feststellen, wenn Sie die Objekte auf der Konsole protokollieren, statt begrenzte Informationen auf die Seite zu drucken:
c
ist derjenige auf der rechten Seite. Es wurde ein Objekt ohne eigene Eigenschaften erstellt. Die von Ihnen angegebenen Eigenschaften befinden sich tatsächlich in prototype
von c
. Der Grund dafür ist, dass das erste Argument zu Object.create
ist die prototype
des zu erstellenden Objekts.
Beachten Sie, dass Sie % Object.create
als erstes Argument:
a
und b
führen zu "identischen" Objekten (genauso wie {a:1}
abd {a:1}
identisch sind).
JSON.parse
analysiert die Eingabe-JSON Zeichenfolge und gibt den analysierten Wert aus. In diesem Fall ein Objekt.
c
ist anders. Object.create
erstellt ein neues Objekt, dessen Prototyp auf den ersten gesetzt ist Streit. Sie können überprüfen, ob c.__proto__.id
gleich 1
ist (und in den ersten beiden Fällen nicht verfügbar ist).
Auf den ersten Blick ergeben alle drei Methoden das "gleiche" Objekt: Das Lesen der Eigenschaft id
ergibt 1
in allen Fällen. Im dritten Fall wird dieses Ergebnis durch die Vererbung des Prototyps verursacht. Dies bietet eine mögliche Funktion :
Tags und Links javascript json