Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie man dies in js verwendet

php中世界最好的语言
Freigeben: 2017-11-17 18:01:21
Original
2551 Leute haben es durchsucht

Was bedeutet das in js?

Dies wird in JS immer verwendet. Heute werde ich mit Ihnen darüber sprechen, was die Leute leicht verwirren kann und wie man es verwendet Dies zeigt auf 1, und die gewöhnliche

Funktion

zeigt auf den Aufrufer der Funktion: Eine einfache Möglichkeit besteht darin, zu sehen, ob sich vor der Funktion ein Punkt befindet. Wenn ja, dann zeigen Sie auf den Wert in 2. Die Pfeilfunktion zeigt auf den Bereich, in dem die Funktion verwendet wird: Achten Sie darauf, den Gültigkeitsbereich zu verstehen. Nur das {} und if(){} von Objekt stellt keinen Gültigkeitsbereich dar;

const obj = {
name: 'objName',
say() {
console.log(this.name);  
      }, 
read: () => {
     console.log(this.name);
             }
       }
obj.say(); // objName
obj.read(); // undefined
Nach dem Login kopieren

Gewöhnliche Funktion, der Aufrufer ist obj, daher ist das Ergebnis auch objname eine gewöhnliche Funktion, mit einem Punkt davor, also zeigt dies auf obj; dies zeigt auf den Bereich, in dem sich die Funktion befindet. Der aktuelle Bereich ist die globale Umgebung, also ist this.name undefiniert .

Nehmen Sie das folgende Beispiel, um besser zu verstehen, wohin die Pfeilfunktion zeigt. Der Gültigkeitsbereich ist die gewöhnliche Funktion say, und der Aufrufer von say() ist obj

obj.say(); // obj, das bezieht sich auf Es ist obj, das ihn definiert
const obj = { 
say: function () {
  setTimeout(() => {
   console.log(this)
                  });
                 }
             }
Nach dem Login kopieren



Zusätzliche Wissenspunkte

Die Standardeinstellung des Browsers ist window

test(); //window

function test() {  
console.log(this);
}
Nach dem Login kopieren

node.js

Der Standardwert für this in der globalen Umgebung ist {}, und der Standardwert für this in gewöhnlichen Funktionen ist global

Beantworten Sie zwei Fragen um zu überprüfen, ob Sie es beherrschen
console.log(this); // {}
function test() {
 console.log(this);
}
test(); //global
Nach dem Login kopieren

Beispiel1

Ausgabe 10, 2

Ich war verwirrt, als ich diese Frage zum ersten Mal sah, aber jetzt verstehe ich sie endlich. Die Methodenfunktion übergibt zwei Parameter, ein Parameter ist fn(), fn() ist eine gewöhnliche Funktion und zeigt auf die Funktion. Der Aufrufer zeigt zu diesem Zeitpunkt auf die globale Welt (Sie können auch sehen, dass kein Punkt vorhanden ist vor dieser Funktion), daher ist das laufende Ergebnis 10. Argumente sind alle Parameter der Funktion, die ein Objekt der Klasse

array
const length = 10;
function fn() {
console.log(this.length);
}
const  obj = {
  length: 5,
  method: function(fn) { 
  fn();
  arguments[0]();   
  }
};
obj.method(fn, 1);
Nach dem Login kopieren
ist, arguments[0] () , kann als Argumente betrachtet werden.0( ), was diese Funktion aufruft, sind Argumente, zu diesem Zeitpunkt bezieht sich dies auf Argumente, this.length ist angument.length, was die Gesamtzahl der in 2 übergebenen Parameter ist

Hinweis: Das laufende Ergebnis des obigen Beispiels in der Knotenumgebung ist undefiniert 2, const length = 10 wird in global.length = 10 geändert, da die globale Variable

in der Knotenumgebung definiert ist

wird nicht gebunden auf global, und der Browser bindet sich automatisch an das globale Umgebungsfenster

Was wird das Ergebnis sein, wenn es wie folgt geändert wird?

Dies ist etwas kompliziert, aber wenn man es Schritt für Schritt analysiert, ist es leicht zu verstehen:
const length = 10;
function fn() {
    console.log(this.length);
}
const obj = {
    length: 5,
    method: function(fn) {
        fn();
        const fun = arguments[0];
        fun();
    }
};
obj.method(fn, 1);
10, 10
example 2
window.val = 1;
var obj = {
    val: 2,
    dbl: function() {
        this.val *= 2
        val *= 2;
        console.log(val);
        console.log(this.val);
    }
}
obj.dbl(); // 2 4
var func = obj.dbl;
func(); // 8 8
Nach dem Login kopieren

obj.dbl(); Bei der Ausführung dieser Codezeile bezieht sich dies auf obj, also this.val == = obj.val*=2, das Endergebnis ist 4, val*=2 === window.val *= 2, das Endergebnis ist 2

func(), wenn diese Codezeile ausgeführt wird, func () Ohne Präfix bezieht sich dies auf window.func(); zu diesem Zeitpunkt ist der Wert von this window, this.val === window.val *= 2, zu diesem Zeitpunkt ist window.val 4, val* =2 === window.val *2, das Endergebnis ist 8. Schließlich beziehen sich console.log(this.val) und console.log(val) auf window.val.

Das Obige ist mein kleines Verständnis davon. Wenn Sie Fragen zu diesem Artikel von mir haben, können Sie gerne mit mir kommunizieren.

Verwandte Empfehlungen:

Wie man die objektorientierten Grundlagen von JavaScript und diese Zeigeprobleme versteht

Detaillierte Erklärung des Unterschieds zwischen diesem und Veranstaltung in JS

Einführung dazu, bewerben, aufrufen und binden in JS

Das obige ist der detaillierte Inhalt vonWie man dies in js verwendet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!