Prototypen und Schließungen sind am häufigsten zu verstehen und als zwei Teile des Problems im JavaScript am einfachsten zu verstehen. Natürlich haben sie auch ihre Erweiterungen wie Umfangsketten, Erbschaft usw. Ich habe sie vor kurzem auch auf verschiedene Weise gelesen, sie alle umgedreht und meine eigenen Erfahrungen aufgezeichnet. Das Schreiben wird immer tiefer sein. (Es hat nichts mit dem Titel zu tun, also seufzte ich. Jedes Mal, wenn ich das Gefühl habe, dass ich verstehe, bekomme ich nach dem Lesen immer noch viele Belohnungen.)
Sprechen wir zuerst über das neue Keyword in JavaScript. Normalerweise erstellen wir es, um ein Instanzobjekt einer Klasse zu erstellen. In JavaScript erben wir nach dem Instantieren des Objekts die Attribute und Methoden der Klasse. Lassen Sie es uns durch den Code demonstrieren
Funktionsperson (Name) {this.name = name;} Person.age = "23"; Person.Prototype.say = function () {console.log ("Ich bin" + this.name);}; var person = new Person ("Wang Fang"); console.log (Person.name, // Wang Fang Person.Height // undefined); Person.say (); // Ich bin wang fang console.log (Person.name, // Person person.age // 23); Person.say (); //Person.say ist keine FunktionSchauen wir uns diese Linie an
var person = neue Person ("Wang Fang");
Was hat New getan? Das Folgende ist, was der Job von JS Engine macht
var obj = {}; obj .__ proto__ = person.prototype; var result = person.call (obj, "Wang Fang"); Rückgabe typeof result === 'obj'? Ergebnis: OBJ;1. Erstellen Sie zuerst ein neues Objekt
2. Punkt OBJs __Proto__ zum Prototyp-Objektprototyp der Person und dann wird die Prototypkette des OBJ-Objekts festgelegt: OBJ-> Person.Prototyp-> Objekt.Prototyp-> null
3. Rufen Sie die Personfunktion im Ausführungsraum des OBJ -Objekts auf und übergeben Sie den Parameter "Wang Fang". Es entspricht VAR -Ergebnis = obj.person ("Wang Fang"). Nachdem dieser Satz ausgeführt wurde, generiert OBJ den Attributnamen und weist ihn "Wang Fang" zu.
4. Bestimmen Sie den Rückgabewert. Wenn kein Rückgabewert vorliegt oder ein Nicht-Objekt-Wert zurückgegeben wird, senden Sie OBJ zurück. Andernfalls wird der Rückgabewert als neues Objekt zurückgegeben (ein bisschen Twist, ternärer Operator, bitte probieren Sie es selbst an).
Zusammenfassen:
Die Hauptfunktion des neuen Schlüsselworts von JavaScript ist die Vererbung, wie im obigen Beispiel erwähnt. Denken Sie jedoch daran, dass diese Person eine Funktion ist, während die Person ein Objekt ist. Was den Unterschied zwischen Funktionen und Objekten betrifft, werde ich ihn erneut schreiben, wenn ich Zeit habe.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.