Heim >Web-Frontend >js-Tutorial >Über Objekte vom Typ Javascript-Wrapper

Über Objekte vom Typ Javascript-Wrapper

巴扎黑
巴扎黑Original
2016-11-25 11:59:271056Durchsuche

Schauen wir uns zunächst einige Testcodes wie diesen an, um zu sehen, welche Probleme wir darin finden können:

var str="likeke";

str;//"likeke"

str.length;//6

str.age=22;

str.age;//undefiniert;

var mystr=new String ("likeke");

mystr;//String {0: "l", 1: "i", 2: "k", 3: "e", 4: "k ", 5: „e“, Länge: 6, [[PrimitiveValue]]: „likeke“}

mystr.length;//6

mystr.age=22;

mystr .age;//22

Erste Frage: Warum kann der Basistyp-String auf das Längenattribut zugreifen?

Zweite Frage: Der Wrapper-Typ des Strings kann auf benutzerdefinierte Attribute zugreifen Warum kann nicht auf den Basistyp-String zugegriffen werden?

Grund: 1. Wenn wir auf ein Attribut einer Basistypzeichenfolge in Form eines Objekts zugreifen oder ein neues Attribut dafür erstellen, konvertiert die js-Engine es in das entsprechende Verpackungstypobjekt

          2. Wenn wir ein benutzerdefiniertes Attribut hinzufügen, wird das temporäre Objekt sofort zerstört. Daher erscheint ein erneuter Zugriff auf diese Eigenschaft (die auch wieder in ihren Wrapping-Typ konvertiert wird) als undefind .

Neben String haben auch andere Grundtypen ähnliche Prinzipien, zum Beispiel (666).toString().length;//3


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