Ein JavaScript -Objekt ist ein zusammengesetzter Wert, bei dem es sich um eine Sammlung von Attributen oder benannten Werten handelt. Es verweist die Attributwerte durch das Symbol "." Wenn der Attributwert eine Funktion ist, nennen wir es eine Methode. Wir sehen, dass Saiten auch Eigenschaften und Methoden haben:
Die Codekopie lautet wie folgt:
var s = "Hallo, Welt!";
var word = substring (S.Indexof ("")+1, S.Length);
Warum hat sie Attribute, da eine Zeichenfolge kein Objekt ist? Solange das Attribut der Zeichenfolge S verwiesen wird, wandelt JavaScript den Stringwert in ein Objekt um, indem der Konstruktor der neuen Zeichenfolge aufgerufen wird. Dieses Objekt erbt die String -Methode und wird verwendet, um die Referenz auf das Attribut zu verarbeiten. Sobald die Attributreferenz abgeschlossen ist, wird das neu erstellte Objekt zerstört (tatsächlich wird dieses Objekt in der Implementierung nicht erstellt, der gesamte Prozess sieht jedoch so aus).
Wie Zeichenfolgen haben auch Zahlen und Boolesche Werte ihre eigenen Methoden: Erstellen Sie ein temporäres Objekt über die Konstruktoren nummer () und boolean (), und die Aufrufe dieser Methoden stammen aus diesem temporären Objekt. Dieses temporäre Objekt wird als Wrapper -Objekt bezeichnet.
Beachten:
Die Codekopie lautet wie folgt:
var s = "test"; // eine Zeichenfolge deklarieren
s.len = 4; // Setzen Sie eine Len -Eigenschaft dafür
var t = s.len; // diese Eigenschaft abfragen
Zu diesem Zeitpunkt sollten wir, wenn wir t ausgeben, undefiniert. Die zweite Codezeile erstellt ein temporäres String -Objekt und weist seinen Len -Attributwert 4 zu und zerstört dann das Objekt. Die dritte Codezeile legt ein neues Attribut über den ursprünglichen String -Wert S fest und versucht das Len -Attribut zu lesen. Dieses Attribut existiert natürlich nicht, daher ist der Wert bei der Ausgabe undefiniert.
Dieser Code zeigt, dass beim Lesen von Attributwerten (oder Methoden) von Zahlen, Zeichenfolgen und booleschen Werten sich wie ein Objekt verhält, aber wenn versucht wird, ihren Attributen Werte zuzuweisen, wird diese Operation ignoriert: Die Änderung findet nur in einem temporären Objekt statt, und dieses temporäre Objekt bleibt nicht weiterhin erhalten.
Das temporäre Objekt, das beim Zugriff auf eine Eigenschaft einer Zeichenfolge, Nummer oder Booleschen Erstellung erstellt wurde, wird als Wrapper -Objekt bezeichnet. Es wird nur gelegentlich verwendet, um zwischen Stringwerten und String -Objekten, numerischen Objekten, booleschen Werten und booleschen Objekten zu unterscheiden.