Bitte lesen Sie die Kommentare sorgfältig durch, um Einzelheiten zu erfahren. Hören wir auf, Unsinn zu reden, und gehen wir direkt zum Code über. Code kopieren Der Code lautet wie folgt: Testdokument //Im Wesentlichen sind Attribute und Methoden gleich. Methoden sind Funktionen, deren Attribute Referenztypen sind. <br> //Ein Objekt hat 4 Attribute: <br> // 1, das vom Konstruktor über dieses Schlüsselwort <br> definierte Attribut // 2, das vom Konstruktor über das var-Schlüsselwort <br> definierte Attribut // 3. Dem Prototypobjekt des Konstruktors hinzugefügte Eigenschaften <br> // //Öffentliche Attribute der Instanz: 1 Durch das Schlüsselwort this definierte Attribute. Zugänglich 1, 2, 3, 4 <br> //Private Attribute der Instanz: 2 Attribute, die durch das Schlüsselwort var definiert werden. Zugänglich 2 <br> //Gemeinsame Attribute der Instanz: 3 Attribute, die über den Prototyp hinzugefügt wurden, auf den die Instanz zeigt. Zugänglich 1,3,4 <br> //Statische Eigenschaften der Instanz: 4 Eigenschaften, die dem Objekt dynamisch hinzugefügt werden. Zugänglich 1,3,4<br> <br>//Zusammenfassung: <br> // Instanzattribute: 1, öffentlich <br> // 2, privat <br> // 4, statisch <br> // Prototypattribute: 3, geteilt <br> //Dies ist als privilegiertes Attribut definiert. Alles barrierefrei <p> //var ist als private Eigenschaft definiert. <br> //Dynamisch hinzugefügte Attribute sind öffentliche Attribute. Privateigentum nicht zugänglich <br> <br>// Das Prototypattribut, auf das das Instanzobjekt zeigt, ist das Prototypattribut. Private Grundstücke sind nicht zugänglich und haben eine niedrigere Priorität als öffentliche Grundstücke<br> </p>//Instanzattribute bestehen hauptsächlich aus öffentlichen Attributen und privilegierten Attributen. Auf beide kann über externe und Prototyp-Eigenschaften zugegriffen werden. Der Hauptunterschied besteht darin, ob private Grundstücke zugänglich sind <p> //Prototypeigenschaften haben eine niedrigere Priorität als Instanzeigenschaften. Zugänglich durch externen Zugriff und Instanzeigenschaften (außer private Eigenschaften) <br> <br></p> //-----------------Hier ist die Trennlinie----------- --- <p> //Öffentliche Eigenschaften: Eigenschaften des Objekts, das der externen Umgebung ausgesetzt ist. Es ist auch eine Eigenschaft des Objekts. </p> //Private Eigenschaften: Auf Eigenschaften innerhalb des Objekts kann häufig nicht zugegriffen werden. Es ist nur sinnvoll, sie auf Konstruktorebene zu berücksichtigen. <p> // Statische Attribute: Dynamisch hinzugefügte Attribute. Es ist auch eine Eigenschaft des Objekts. <br> // Gemeinsame Eigenschaften: Eigenschaften, die von allen vom Konstruktor generierten Instanzen gemeinsam genutzt werden. </p> <p> Funktion User(){ <br> // Öffentliche Attribute: Jedes neue Benutzerinstanzobjekt verfügt über Attribute. <br> // Es handelt sich um ein Instanzattribut, und die Attribute aller Instanzen teilen sich nicht den Speicher. <br> // Von außen zugänglich. <br> This.name='byronvis'; <br> // Privilegierte Methoden: Jedes neue Benutzerinstanzobjekt verfügt über Methoden. <br> // Es handelt sich um eine Instanzmethode, und nicht alle Instanzmethoden teilen sich den Speicher. <br> // Von außen zugänglich. <br> // Zugängliche öffentliche Eigenschaften. <br> // Barrierefreie Privatgrundstücke. <br> This.sayName=function(){ <br> warning(this.name); <br> alarm(this.school); <br> warning(age);//Variablendeklaration wird automatisch erweitert. <br> alarm(this.sex); <br> }; <br> // Private Attribute: Außen kann nicht von außen zugegriffen werden. <br> // Es ist nur für den Konstruktor von Bedeutung und für das Benutzerinstanzobjekt von New bedeutungslos. <br> var age=22; // Private Methode: von außen nicht zugänglich. <br> // Es ist nur für den Konstruktor von Bedeutung und für das Benutzerinstanzobjekt von New bedeutungslos. <br> Funktion sayAge(){ <br> Alarm(Alter); <br> } <br> sayAge(); <br> } <br> // Gemeinsame Attribute: Gemeinsamer Speicher. <br> User.prototype.school='zky'; // Öffentliche Methoden: Zugängliche öffentliche Eigenschaften. <br> // Gemeinsamer Speicher. <br> User.prototype.saySchool=function(){ <br> alarm(this.school); <br> warning(this.name); <br> alarm(this.sex); <br> Alarm(Alter); <br> }; <br> var obj=new User(); // Statische Eigenschaften: Dies sind dynamisch hinzugefügte Instanzeigenschaften. <br> obj.sex='man' <br> // Statische Methode: Es handelt sich um eine Instanzmethode, die dynamisch hinzugefügt wird. <br> obj.saySex=function(){ <br> alarm(this.sex); <br> warning(this.name); <br> alarm(this.school); <br> Alarm(Alter); <br> }; <br> //-----------------Hier ist die Trennlinie----------- --- <br> //// Es beweist, dass die durch dieses Schlüsselwort definierten Eigenschaften und die dynamisch hinzugefügten Eigenschaften im Wesentlichen gleich sind und als öffentliche Eigenschaften des Instanzobjekts betrachtet werden können. <br>// Überprüfung: Das durch dieses Schlüsselwort definierte Attribut greift auf das dynamisch hinzugefügte Attribut <br> zu // obj.sayName();//true <br> // Überprüfung: Dynamisch hinzugefügte Attribute greifen auf die durch dieses Schlüsselwort <br> definierten Attribute zu // obj.saySex();//true <br> // Überprüfung: Öffentliche Eigenschaften greifen auf private Eigenschaften zu <br> // obj.sayName();//true <br> obj.saySex();//false <br> // Überprüfung: Geteilte Eigenschaften greifen auf private Eigenschaften zu <br> // obj.saySchool();///false</p> <p> Testdokumentation