Dies ist ein wichtiges Schlüsselwort in der Objekt -orientierten Sprache. JavaScripts Dies unterscheidet sich von der objektivorientierten Sprache wie Java und C#, was dies verwirrender und verwirrender macht.
Was das verwendet:
1. reine Funktion
2. Aufruf der Objektmethode
3.. Verwenden Sie neu, um den Konstruktor aufzurufen
4. Interne Funktionen
5. Anruf / Bewerben verwenden
6. Ereignisbindung
1. reine Funktion
Kopieren Sie den Code -Code wie folgt:
var name = 'Dies ist Fenster';
Funktion getName () {
console.log (this);
console.log (this.name);
}
GetName ();
Analyse der laufenden Ergebnisse: Dies in reinen Funktionen zeigt auf globale Objekte, Fenster.
2. Aufruf der Objektmethode
Kopieren Sie den Code -Code wie folgt:
var name = 'Dies ist Fenster';
var testObj = {
Name: 'Dies ist TestObj',
GetName: function () {
console.log (this);
console.log (this.name);
}
}
testObj.getName ();
Analyse der Run -Ergebnisse: Dies wird auf das Objekt hingewiesen, das die Methode aufruft.
3.. Verwenden Sie neu, um den Konstruktor aufzurufen
Kopieren Sie den Code -Code wie folgt:
Funktion getObj () {
console.log (this);
}
neu GetObj ();
Analyse der Laufergebnisse: Dies zeigt im neuen Konstruktor auf das neu generierte Objekt.
4. Interne Funktionen
Kopieren Sie den Code -Code wie folgt:
var name = "Dies ist Fenster";
var testObj = {
Name: "Dies ist TestObj",
GetName: function () {
// var seelf = this; // vorübergehend das Objekt speichern.
var ahandle = function () {{)
console.log (this);
console.log (this.name);
//console.log (set);
}
handhaben ();
}
}
testObj.getName ();
Analyse der Run -Ergebnisse: Dies zeigt in der internen Funktion immer noch auf das globale Objekt, Fenster. Es wird allgemein als Konstruktionsfehler in der JavaScript -Sprache angesehen, da niemand dies in die interne Funktion auf das globale Objekt verweisen möchte. Die allgemeine Verarbeitungsmethode besteht darin, dies als Variable zu speichern, und es ist allgemein vereinbart, dass sie so oder selbst sein können, wie im obigen Code gezeigt.
5. Anruf / Bewerben verwenden
Kopieren Sie den Code -Code wie folgt:
var name = 'Dies ist Fenster';
var testObj1 = {
Name: 'Dies ist testobj1',
GetName: function () {
console.log (this);
console.log (this.name);
}
}
var testObj2 = {
Name: 'Dies ist testobj2'
}
testObj1.getName.apply (testObj2);
testObj1.getName.call (testObj2);
Hinweis: Bewerben und Anruf sind ähnlich, aber die zweiten Parameter der beiden sind unterschiedlich:
[1] Call (ThisArg [, arg1, arg2, ...]);
[2] anwenden (thisArg [, argArray]);
Analyse der laufenden Ergebnisse: Dies verwendet dies in der Aufruf- / Anwendungsfunktion, um auf das Bindungsobjekt zu verweisen.
6. Ereignisbindung
Diese Methode in der Ereignismethode sollte der verdächtige Ort sein, die meisten der Fehler entstanden.
Kopieren Sie den Code -Code wie folgt:
// Seite zur Bindung des Elements
<script type = "text/javaScript">
Funktion btclick () {
console.log (this);
}
</script>
<body>
<button id = "btn" onclick = "btclick ();"> klicken Sie auf </button>
</body>
Kopieren Sie den Code -Code wie folgt:
// JS -Bindungsmethode (1)
<body>
<button id = "btn"> klicken </button> klicken
</body>
<script type = "text/javaScript">
Funktion btclick () {
console.log (this);
}
document.getElementById ("btn").
document.getElementById ("btn").
</script>
Kopieren Sie den Code -Code wie folgt:
// JS -Bindungsmethode (2)
<body>
<button id = "btn"> klicken </button> klicken
</body>
<script type = "text/javaScript">
document.getElementById ("BTN").
console.log (this);
}
document.getElementById ("btn").
</script>
Kopieren Sie den Code -Code wie folgt:
// JS -Bindungsmethode (3)
<body>
<button id = "btn"> klicken </button> klicken
</body>
<script type = "text/javaScript">
Funktion btclick () {
console.log (this);
}
document.getElementById ("BTN"). Methode (Methode Methode (Methode) Wenn sie bei der Ereignisbehandlung verwendet wird.
document.getElementById ("BTN").
</script>
Analyse der laufenden Ergebnisse: Die obigen zwei gemeinsamen Ereignisbindungsmethoden, Ereignisbindung auf dem Seitenelement Zusätzlich zur Bindungsereignismethode, weist dies auf das Elementelement des Bindungsereignisses hin.