Dieses Beispiel beschreibt die Verwendung der JS -Funktion dies. Teilen Sie es für Ihre Referenz. Die Details sind wie folgt:
Beim Schreiben von Funktionen in JS wird dies sehr verwendet. Was genau ist das? Dies ist ein Schlüsselwort, ein Zeiger, der auf den Umfang der Ausführungsumgebung hinweist, auch als Kontext bezeichnet.
Sprechen wir zuerst über Funktionen. Persönlich verstehe ich, dass Funktionen Codeblöcke sind, die in der Sprache wiederholt aufgerufen werden.
In JS wird eine Funktion der Eigenschaften eines Objekts zugewiesen, sie wird als Methode bezeichnet
wie:
var m = {}; m.title = 'title'; M.Show = function () {alert (this.title)} m.show ()Es soll die Funktion als Methode des Objekts m aufrufen
In diesem Fall zeigt dies auf das Objekt m.
Der Name Direct Call -Funktion wird als Funktion bezeichnet:
var a = 1212; Funktion show () {alert (a) // 1212} show () // 1212In einer globalen Umgebung können globale Variablen als Fenstereigenschaften verstanden werden, und globale Funktionen sind Fenstermethoden
Siehe das folgende Beispiel:
var m = {}; m.id = 'mmm'; M.Show = function () {alert (this.id);} var a = {}; A.id = 'aaa'; A.Show = M.Show; A.Show (); //aaaa.show=m.show; Verstehe diesen Satz zuerst, weil eine Funktion ein Objekt ist, M.Show = function () {alert (this.id)}Dieser Ausdruck entspricht gleichzeitig auf A.Show und M.Show
function () {alert (this.id)}Eigentlich gleich
A.Show = function () {alert (this.id)}Also, wenn a.show () aufgerufen wird, zeigt dies auf ein Objekt a,,
Schauen Sie sich die folgende Kastanie an
var m = {}; m.id = 'mmm'm.show = function () {alert (this.id)} var a = {} a.id =' aaa'a.show = function () {M.Show ()}; A.Show (); // mmmmWenn Sie also A.Show () aufrufen, ist es gleichbedeutend mit der Aufruf der Methode von M.Show (), so dies. zeigt auf ein M -Objekt.
Schauen Sie sich das folgende Beispiel an, ich habe es am Anfang noch nicht sehr verstanden
var color = 'rot'; var app = {}; app.color = "green"; app.paint = function (node) {node.style.color = this.color; alert (this.color);} Funktion findNode (radback) {var btn = document.querySelector ('. btn'); Callback (btn); // pass ein,} findnode (app.paint); alarm (this.color); // rot statt grünWenn eine Funktion Argument übergeht, gibt sie Argumente nach Wert und nicht nach Referenzen über
Also, wenn findnode (app.paint); wird übertragen, es ist eigentlich
Funktion (Knoten) {node.style.color = this.color; alarm (this.color);}Da FindNode global definiert ist, zeigt dieser auf Fenster oder nicht definiert.
Über die Übergabe von Parametern, über vergangene Werte übergeben
Funktion anzeigen (a) {alert (a)}Es ist leicht zu verstehen, wann die Parameter grundlegende Datentypen sind
var b = 10; show (b) // alarm (10);
Wie für das Objekt
var c = {}; C.Prop = true; var showProp = Funktion (obj) {obj.prop = false} showProp (c); //c.prop=falseEinige Leute denken, dass das obige Beispiel darin besteht, Parameter gemäß der Referenz zu übergeben
Tatsächlich überträgt das oben genannte Parameter nach dem Wert immer noch die Parameter. Wenn showProp (c) C in die Funktion übergeht, entspricht C tatsächlich einer Referenz. Die Funktion hat obj.prop = false, was gleichbedeutend mit der Änderung des referenzierten Objekts in {prop: false} entspricht
Schauen Sie sich das folgende Beispiel an
var c = {}; C.Prop = true; var showProp = Funktion (obj) {obj = new Object (); obj.prop = false return obj;} showProp (c); alert (C.Prop); //WAHRHier wurde der eingehende OBJ geändert. Wenn Sie die Parameter gemäß der Funktion durch Bezugnahme übergeben, werden die Änderungen innerhalb der Funktion definitiv außerhalb von außen reflektiert.
Ich hoffe, dieser Artikel wird für JavaScript -Programme aller hilfreich sein.