Heim >Web-Frontend >js-Tutorial >Vertiefendes Verständnis der js-Wrapper-Klassen

Vertiefendes Verständnis der js-Wrapper-Klassen

零到壹度
零到壹度Original
2018-04-12 11:21:292727Durchsuche

Der Inhalt dieses Artikels soll Ihnen ein tiefgreifendes Verständnis der js-Verpackungsklasse vermitteln. Er hat einen gewissen Referenzwert.

Lesen wir es, bevor wir über die Verpackungsklasse sprechen. Wie lautet die Antwort auf das folgende Beispiel

var str = 'hello';
str.name = 'world';
console.log(str.name);

?

Ist das nicht offensichtlich? Die obige Zeichenfolge hat ein Attribut namens „name“ hinzugefügt und der Wert ist „world“. Die Ausgabe muss „world“ sein.

Ich denke, wenn man diesen Code sieht, ist das das Erste, was einem in den Sinn kommt!

Herzlichen Glückwunsch, Sie haben die Antwort falsch verstanden!

Wir wissen, dass in js mit Ausnahme der Originalwerte alles andere ein Objekt ist und Objekte ihre eigenen Eigenschaften und Methoden haben können. (Methode ist, wenn das Attribut eine Funktion ist, wir nennen es eine Methode)

Hat der ursprüngliche Wert also seine eigenen Attribute?

var str = 'hello';
console.log(str.length) // 6

Wir können die String-Längenmethode genauso aufrufen ein Array, dessen Nummer wird ausgedruckt.

Da String kein Objekt ist, warum hat er dann seine eigenen Methoden?

Dies liegt daran, dass js, solange wir das str-Attribut verwenden, new String(str) aufruft, um str in ein Objekt einzubinden. Dieses Objekt erbt die oben genannten Methoden.


Dies sind alles String-Methoden.

Aber was ist, wenn String nicht das gewünschte Attribut hat?

Dann erstellt js ein Attribut für String, aber nach der Erstellung wird es sofort zerstört.

Sehen wir uns dieses Beispiel noch einmal an

var str = 'hello';
str.name = 'world'; 
/*
上面这一步str给他自己设置一个名为name,值为world的属性,于是js就new String(str).name = 'world';
创建之后,销毁
*/
console.log(str.name)
/*
这一步 js又new String(str).name 但是没有值,
所以值为undefined,
*/

Ähnlich Zahl und boolean ist auch

Das obige ist der detaillierte Inhalt vonVertiefendes Verständnis der js-Wrapper-Klassen. 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