Heim >Web-Frontend >js-Tutorial >Sind Zeichenfolgen und Zahlen in JavaScript wirklich Objekte?
Das Rätsel der JavaScript-Objekte entschlüsseln
Im Bereich JavaScript wirft die Allgegenwart von Objekten oft Fragen auf. Während Arrays und Funktionen objektähnliches Verhalten aufweisen, kann es verwirrend sein, die rätselhafte Natur von „Strings“ und „Numbers“ zu entschlüsseln.
Die schwer fassbare Natur primitiver Werte
Entgegen der landläufigen Meinung ist nicht alles in JavaScript ein Objekt. Kernelemente wie Zeichenfolgen, Zahlen und boolesche Werte werden als Grundelemente klassifiziert und zeichnen sich durch ihre unveränderliche Natur aus. Im Gegensatz zu echten Objekten fehlen Primitive Methoden und Eigenschaften.
Die Illusion der Objekthaftigkeit
JavaScript verwendet einen cleveren Trick, um Primitive objektartig erscheinen zu lassen. Beim Versuch, auf die Eigenschaft eines Grundelements zuzugreifen (z. B. s.substring(1, 2)), erstellt JavaScript nahtlos ein Wrapper-Objekt (z. B. String(s)), das über die gewünschten Methoden verfügt. Dieser Wrapper ist jedoch nur von kurzer Dauer und verschwindet, sobald die Methodenausführung abgeschlossen ist.
Beweis: Die Unreachable-Eigenschaft
Diese Illusion wird deutlich, wenn man Primitiven Eigenschaften zuweist , die sich letztendlich als zwecklos erweisen. Betrachten Sie den Code:
var s = "foo"; s.bar = "cheese"; alert(s.bar); // undefined
Obwohl dem Grundelement s eine Eigenschaft zugewiesen wurde, führt der Versuch, sie abzurufen, zu undefiniert. Dies liegt daran, dass die Eigenschaft an das kurzlebige Wrapper-Objekt angehängt ist, das nach Abschluss der Methode verworfen wird.
Funktionen: Echte Objekte
Im Gegensatz zu Grundelementen sind JavaScript-Funktionen legitime Objekte, die vom Objektprototyp erben. Dadurch erhalten sie die Möglichkeit, Eigenschaften zu besitzen und jede objektbasierte Methode auszuführen.
Eigenschaftszuweisung in Funktionen
Funktionen können als typische Objekte fungieren und die Zuweisung und den Abruf von Eigenschaften ermöglichen :
function foo() {} foo.bar = "tea"; alert(foo.bar); // tea
Indem wir die Unterscheidung zwischen Grundelementen und legitimen Objekten in JavaScript verstehen, zerstreuen wir die Verwirrung, die mit der weit verbreiteten Vorstellung verbunden ist „Fast alles ist ein Objekt.“
Das obige ist der detaillierte Inhalt vonSind Zeichenfolgen und Zahlen in JavaScript wirklich Objekte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!