Heim  >  Artikel  >  Web-Frontend  >  Das Geheimnis dahinter in Javascript analysieren

Das Geheimnis dahinter in Javascript analysieren

怪我咯
怪我咯Original
2017-03-29 14:48:01895Durchsuche

Vorwort: Dies ist ein relativ spezielles Schlüsselwort von JavaScript. Das breite Anwendungsspektrum und die Flexibilität der Methode machen es leistungsstark, aber gleichzeitig auch ist zum Scheitern verurteilt. Als ich anfing, es zu lernen, war ich sehr verwirrt. Ich habe viele Informationen nachgeschlagen, um es vollständig zu verstehen. Dann habe ich das Gelernte geordnet und auf leicht verständliche Weise ausgedrückt. Es kann als Lernnotiz und als Referenz für Kinder in Not verwendet werden^_^

Was ist das?
Die Bedeutung dieses Schlüsselworts ist klar und spezifisch, das heißt, es bezieht sich auf das aktuelle
Objekt . Dies bedeutet, dass dies nur unter bestimmten relativen Umständen zutrifft.
Dies ist in drei Situationen unterteilt: globales Objekt, aktuelles Objekt oder ein beliebiges Objekt; die Beurteilung, in welcher Situation es sich befindet, hängt vollständig davon ab, wie die
Funktion aufgerufen wird, der Hauptfunktionsaufruf in JavaScript Es gibt mehrere Möglichkeiten:
Aufruf als normale Funktion

Aufruf als Objektmethode

Aufruf als
Konstruktor Aufruf
Verwendung anwenden Oder aufrufen


1. Als normaler Funktionsaufruf

------Dies ist unsere am häufigsten verwendete Methode, zu der diese Aufrufmethode gehört Der globale Aufruf bezieht sich hier auf das globale Objekt

function test(){
 this.a = 5;
 alert(this.a);
 alert(this);
}
test(); // 5 [object Window]


Wie oben gezeigt: für eine global definierte Funktion der Eigentümer der Funktion ist die aktuelle Seite, also
Fensterobjekt, also ist das aufrufende Objekt von example() Window, also stellt dies hier Window dar:
Eine andere Möglichkeit, es zu schreiben:


var a = 5;
function test(){
 var a = 10;
 alert(this.a);
}
test(); //5


Wie oben gezeigt: Eine
Variable a wird auch innerhalb der test()-Funktion deklariert, aber das Ergebnis des Aufrufs von test() ist 5 , was darauf hinweist, dass die Funktion zu diesem Zeitpunkt das globale Objekt darstellt, das Fenster ist.
kann anders geschrieben werden:


var a = 5;
function test(){
 this.a = 10;
}
test();
alert(a); //10


wie oben gezeigt: Rufen Sie test() auf. Die Funktion ändert den Wert der globalen Variablen a, was bedeutet, dass diese zu diesem Zeitpunkt das globale Objekt darstellt.


2. Aufruf als Objektfunktion
------Wenn eine Funktion von einem Objekt aufgerufen wird, zeigt dies auf das Objekt


var name="张三";
 var person={
  name:"李四",
  showName:function(){
   alert(this.name);
  }
 }
 person.showName(); //输出 李四
 var other=person.showName;
 other(); //输出 张三


Wie oben gezeigt: Das Ergebnis der Ausführung von person.showName() ist Li Si, was darauf hinweist, dass dies in showName zu diesem Zeitpunkt auf Person verweist; >Da other eine globale Variable ist, kann es nach der Zuweisung von person.showName zu other als
Attribut
des Fensterobjekts betrachtet werden. Wenn Sie also other() aufrufen, entspricht dies dem Aufruf von window.other(), sodass dies auf das Fenster verweist und das Ausgabeergebnis Zhang San ist.
Wenn es also als Funktionsobjekt aufgerufen wird, ist dies zeigt auf das Objekt des Aufrufs.

3. Rufen Sie

als Konstruktor auf ------Der Konstruktor soll über diese Funktion ein neues Objekt generieren, und dieses zeigt auf dieses neue Objekt



function animal(){
 this.name = "豆豆";
}
var dog = new animal();
alert(dog.name); // 输出 豆豆
Wie oben gezeigt: Generieren Sie ein Objekt vom Typ

Objekttyp
über das neue Schlüsselwort und setzen Sie es ein. Es wird dem Hund zugewiesen . Wenn dieser Konstruktor ausgeführt wird, zeigt dieser im Konstruktor
Funktionsbereich auf dieses Objekt, hier zeigt es auf Hund, also ist this.name gleich dog.name, also das Ausgabeergebnis Für Doudou. 4. Verwenden Sie apply oder call, um

aufzurufen. ------apply() ist eine Methode des Funktionsobjekts. Sie wendet eine Methode eines Objekts an und verwendet eine andere Objekt ersetzt das aktuelle Objekt.



var a = "张三";
function test(){
 alert(this.a);
}
var b = {};
b.a = "李四";
b.n = test;
b.n(); //李四
b.n.apply(); //张三
b.n.apply(b); //李四
Wie oben gezeigt: b.n()----Da das aufgerufene Objekt b ist, zeigt this auf b, this. a == b.a , also ist das Ergebnis Li Si;


b.n.apply----Wenn der Parameter von apply() leer ist, gibt es kein Objekt, das das aktuelle Objekt ersetzt, und das globale Objekt wird verwendet standardmäßig zeigt dies auf window , das Ergebnis ist Zhang San; Li Si

(Verweis auf diesen Artikel Ich habe die Informationen im Internet und in einigen Büchern gelesen. Wenn es Fehler gibt, weisen Sie sie bitte darauf hin und sie werden rechtzeitig korrigiert. O(∩_∩)O )


Zusammenfassung:
In diesem Artikel wird JavaScript vorgestellt. Die Beispiele für die Bedeutung dieses Schlüsselworts in verschiedenen Situationen sind sehr einfach und können zum tieferen Verständnis beitragen. Obwohl dies nur ein kleines Konzept in JavaScript ist, können wir es verwenden, um die Ausführungsumgebung von Funktionen in JavaScript vollständig zu verstehen und uns dabei zu helfen,
objektorientierte
JavaScript-Programme zu schreiben. Zum Schluss vielen Dank fürs Zuschauen.


-->

Das obige ist der detaillierte Inhalt vonDas Geheimnis dahinter in Javascript analysieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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