Heim  >  Artikel  >  Web-Frontend  >  Sind Zeichenfolgen und Zahlen in JavaScript wirklich Objekte?

Sind Zeichenfolgen und Zahlen in JavaScript wirklich Objekte?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-12 02:38:02705Durchsuche

Are Strings and Numbers Really Objects in JavaScript?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn