Dies ist ein Schlüsselwort in JavaScript. Der Wert davon ändert sich je nach Verwendung der Funktion. Aber es gibt immer ein Prinzip, das heißt, dies bezieht sich auf das Objekt, das die Funktion nennt.
In der traditionellen OO -Sprache wird dieser Zeiger in einer Klasse deklariert und repräsentiert das Objekt selbst. In JavaScript repräsentiert dies den aktuellen Kontext, dh die Referenz des Anrufers.
******* Dies zeigt immer auf den Eigentümer von (Funktionsobjekt)
Diese und globale Objekte:
var a = 1; Funktion foo () {var b = 2; console.log (this.a+b); // 3} foo (); // Der Eigentümer der FOO -Funktion ist ein Fenster, und dies bezieht sich auf das Fensterobjekt in der globalen Funktion (************, es sei denn, der neue, Anruf, Antragsmethoden werden verwendet, um die Referenzbeziehung davon zu ändern)Dieses und Objekt:
var person = {name: 'theo wong', Geschlecht: 'männlich', getName: function () {console.log (this.name); // Der Eigentümer der GetName -Funktion ist ein Person -Objekt}}; Person.getName ();Dies in verschachtelten Funktionen
var myObject = {func1: function () {console.log (this); // myObject var func2 = function () {console.log (this); // Fenster var func3 = function () {console.log (this); //Fenster }(); } (); }}; myObject.func1 (); // In verschachtelten Funktionen bezieht sich dies auf ein Fensterobjekt. Tatsächlich ist dies ein Fehler in ECMA-262-3, der in der neuesten ECMA-262-5 behoben wurdeDies in der Ereignisverarbeitung:
var showValue = function () {alert (this.value); };1. <Eingabe -ID = "Test" type = "text" />
Bindungsereignis über dom.onclick, document.getElementById ('test'). Onclick = showValue;
Zu diesem Zeitpunkt wird ShowValue als Onclick -Methode von DOM bezeichnet. Dies sollte sich daher auf das DOM -Objekt beziehen, nicht auf das Fensterobjekt mehr
2. Schreiben Sie es in das HTML -Tag, <Eingabe -ID = "Test" type = "text" onclick = "showValue ();" />
Wenn wir auf das DOM klicken, können wir dies nicht richtig erstellen. Dies bezieht sich zu diesem Zeitpunkt auf das Fensterobjekt. Da im Fensterobjekt keinen Wert definiert ist, kann dieser Wert nicht erhalten werden.
*** Zu diesem Zeitpunkt wird die ShowValue -Funktion nicht der Einklick des DOM -Objekts, sondern einer Referenz zugewiesen. Zu diesem Zeitpunkt ist der Eigentümer der Funktion function () das Fenster
document.getElementById ('test'). onclick = function () {showValue ();};Bindungsereignis Hören über AddEventListener/AttafEvent
<input type = "text" id = "test" /> <script type = "text /javaScript"> var domor = document.getElementById ('test'); id = 'Fenster'; Funktion test () {alert (this.id); } dom.addeventListener? // AddEventListener -Test // AttafEvent -Fenster </script> // Diese Möglichkeit zur Überwachung des Ereignisses, Anhang Dies ist ein Fensterobjekt, und AddEventListener ist ein DOM -ObjektDies und Konstrukt:
Funktion obj (Name, Alter) {this.name = name; this.age = Alter; this.fun = function () {alert (this.name); }; } var obj = new OBJ ('xht', 18); // Dies beziehtDas und rufen Sie an
// Definieren Sie eine Person mit dem Namen Jack var Jack = {Name: "Jack", Alter: 26} // Definieren Sie eine andere Person mit dem Namen Abruzzi var abruzzi = {name: "abruzzi", Alter: 26} // eine globale Funktionsobjektfunktion AlertName () {) this.name; } // Setzen Sie den Kontext von AlertName auf Jack, und dies ist zu diesem Zeitpunkt Jack Alert (alertName.call (Jack)); // Setzen Sie den Kontext von AlertName auf Abruzzi, und dieser zu diesem Zeitpunkt ist abruzzi alert (alertname.call (abruzzi));Zitate sind ein relativ interessantes Thema. Im Gegensatz zu anderen Sprachen weisen Referenzen in JavaScript immer auf das endgültige Objekt hin, nicht auf die Referenz selbst.
var obj = {}; // leeres Objekt var ref = obj; // Referenz obj.name = "Objecta"; alarm (ref. name); // ref füge dann das Namensattribut adj = ["eins", "zwei", "drei" hinzu; // obj zeigt auf ein anderes Objekt (Array -Objekt) Warnmeldung (Ref.Name); // Ref zeigt auch auf die ursprüngliche Objektwarnung (obj.length); // 3 Alarm (Ref.Length);OBJ ist nur ein Hinweis auf ein anonymer Objekt, daher weist Ref nicht darauf hin.
Die Referenz kann nur auf ein bestimmtes Objekt verweisen. Wenn sich das spezifische Objekt ändert, wird die Referenz oder Referenz auf das ursprüngliche Objekt und nicht das geänderte Objekt geändert.
Das obige sind die Informationen zu diesem Zeiger und der Referenz in JavaScript, die Ihnen vom Editor vorgestellt wurden. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!