Heim  >  Artikel  >  Web-Frontend  >  JavaScript-Verpackungsobjektinstanzanalyse_Javascript-Kenntnisse

JavaScript-Verpackungsobjektinstanzanalyse_Javascript-Kenntnisse

WBOY
WBOYOriginal
2016-05-16 16:07:151123Durchsuche

Die Beispiele in diesem Artikel beschreiben die Verwendung von JavaScript-Verpackungsobjekten. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:

Ein js-Objekt ist ein zusammengesetzter Wert: Es ist eine Eigenschaft oder eine Sammlung benannter Werte.

Beziehen Sie sich auf den folgenden Code:

var s = "hello world";
var len = s.length;

In diesem Beispiel ist s ein String und String ist kein Objekt, aber warum hat es Attribute? Solange auf die Eigenschaften der Zeichenfolge s verwiesen wird, konvertiert js die Zeichenfolge in ein Objekt, indem es neue Zeichenfolgen aufruft. Das Objekt erbt die Methoden der Zeichenfolge und wird zur Verarbeitung der Referenz der Eigenschaft verwendet. Sobald auf die Eigenschaft verwiesen wird, wird am Ende das neu erstellte Objekt zerstört (dieses temporäre Objekt wird bei der Implementierung nicht unbedingt erstellt oder zerstört, aber der gesamte Prozess scheint so zu sein).

Wie Zeichenfolgen haben auch Zahlen und boolesche Werte ihre eigenen Methoden: Ein temporäres Objekt wird durch den Single-Core-Konstruktor „Number()“ Boolean() erstellt, und die Aufrufe dieser Methoden erfolgen jedoch alle von diesem temporären Objekt , null und undefiniert sind keine Wrapper-Objekte: Der Zugriff auf ihre Eigenschaften führt zu einem Typfehler.
Zum Beispiel der folgende Code:

var s0 = "hello world";
s0.len = 100;
var t = s.len; //t的值将为undefined

Da Zeile 2 ein temporäres Objekt erstellt und es sofort zerstört, erstellt Zeile 3 ein neues String-Objekt über den ursprünglichen String-Wert und versucht, dessen len-Attribut zu lesen, das natürlich nicht existiert. Dieser Code veranschaulicht, wie man sich beim Lesen von Eigenschaftswerten oder Methoden von Zeichenfolgen, Zahlen und booleschen Werten wie ein Objekt verhält. Wenn Sie jedoch versuchen, seiner Eigenschaft einen Wert zuzuweisen, wird dieser Vorgang ignoriert: Die Änderung erfolgt nur für das temporäre Objekt und das temporäre Objekt bleibt nicht erhalten.
Temporäre Objekte, die beim Zugriff auf Eigenschaften von Zeichenfolgen, Zahlen oder booleschen Werten vorübergehend erstellt werden, werden als Wrapper-Objekte bezeichnet.
Wir können explizit ein String-Objekt erstellen und seine Eigenschaften hinzufügen, und natürlich bleiben die Eigenschaften erhalten:

var str = "hello world";
var objs = new String(str);
objs.len = 100;
var t = objs.len; //t将被赋值为100

js konvertiert das umschlossene Objekt bei Bedarf in einen Grundwert, sodass sich das erstellte angezeigte Objekt und sein entsprechender Grundwert oft, aber nicht immer, gleich verhalten. Der ==-Operator behandelt den Originalwert und sein umschlossenes Objekt als gleich; der ===-Kongruenzoperator behandelt sie jedoch als ungleich. Darüber hinaus kann der Typ-Operator verwendet werden, um den Unterschied zwischen dem Originalwert und dem umschlossenen Objekt zu erkennen.

Ich hoffe, dass dieser Artikel für das JavaScript-Programmierdesign aller hilfreich sein wird.

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