Heim Web-Frontend js-Tutorial Detaillierte Einführung in den Umfang der JavaScript-Funktionen und diesen Zeiger

Detaillierte Einführung in den Umfang der JavaScript-Funktionen und diesen Zeiger

Sep 19, 2017 am 11:25 AM
javascript js 作用域

Der folgende Editor vermittelt Ihnen ein detailliertes Verständnis des Umfangs und dieses Zeigers der js-Funktionen. Der Herausgeber findet es ziemlich gut, deshalb teile ich es jetzt mit Ihnen und gebe es als Referenz. Folgen wir dem Editor und werfen wir einen Blick darauf.

Der Funktionsumfang und dieser Zeiger sind sehr wichtige Teile von js. Um diese Sache zu verdeutlichen, brauchen wir eine Logik...

Im Folgenden finden Sie eine Übersicht. Sie können die Artikel, die Sie interessieren, direkt auswählen und lesen.

• Funktionsdefinitionsmethode: direkte Definition (unter Fenster, interne Definition), Objektmethode, Objektprototypmethode

• Funktionsaufrufmethode: direkter Aufruf, Aufruf/ apply, with

• Bei direkt definierten Funktionen und Methoden von Objekten entspricht der Bereich standardmäßig der Bereichskette, in der er definiert ist.

• Bei direkt definierten Funktionen zeigt dies auf das Fenster.

• Bei Objektmethoden zeigt dies auf das instanziierte Objekt (entsprechend dem Fall, in dem das instanziierte Objekt dies standardmäßig zurückgibt).

• Verwenden Sie call/apply, um diesen Punkt der Methode zu ändern.

• Wenn Sie eine Funktion oder Methode definieren, können Sie deren Gültigkeitsbereichskette mit ändern.

Lassen Sie uns im Folgenden ausführlich darüber sprechen:

Die Definition von Funktionen, wie in der Gliederung erwähnt, kann in zwei Typen unterteilt werden: direkte Definition (unter Fenster, intern definiert), Objektmethoden (oder Objektprototypmethoden). Aus dem folgenden Beispielcode können Sie ersehen, dass die Funktionen fn1 und fn2 sowie die Methode doFunction des Objekts verwendet werden. Wenn die Funktion name verwendet, stammt der Wert von name aus dem entsprechenden Feld.


var name = &#39;window下的name<br/>&#39;;
var resultCon;
function fn1() {
  resultCon.innerHTML += name;
}

function MyObj() {
  var name = &#39;MyObj下的name<br/>&#39;;
  this.doFunction = function() {
    resultCon.innerHTML += name;
Nach dem Login kopieren

Was passiert, wenn „name“ durch „this.name“ ersetzt wird, wenn der Wert „name“ verwendet wird? . Beispiel:


var name = &#39;window下的name<br/>&#39;;
var resultCon;
function fn1() {
  resultCon.innerHTML += this.name;
}

function MyObj() {
  var name = &#39;MyObj下的name<br/>&#39;;
  this.doFunction = function() {
    resultCon.innerHTML += this.name;
Nach dem Login kopieren
Nach dem Login kopieren

Anhand der Ergebnisse können wir die Punkte 4 und 5 in der Gliederung überprüfen. Wir können auch sehen, dass es sich hierbei um zwei separate Sätze handelt Folgen Sie Ihrer eigenen Variablenabfragelogik. Die spezifische Abfragelogik wird in der folgenden Leistungsanalyse erwähnt. Wenn Sie ein Anfänger sind, wird empfohlen, sich zunächst mit den Grundkenntnissen der „js-Bereichskette“ zu befassen.

Bezüglich der Funktionsaufrufmethode verwende ich das folgende Beispiel, um die Elemente 2 und 6 in der Gliederung zu veranschaulichen:


var name = &#39;window下的name<br/>&#39;;
var resultCon;
function fn1() {
  resultCon.innerHTML += this.name;
}

function MyObj() {
  var name = &#39;MyObj下的name<br/>&#39;;
  this.doFunction = function() {
    resultCon.innerHTML += this.name;
Nach dem Login kopieren
Nach dem Login kopieren

call und Apply wird verwendet um den This-Zeiger der aufgerufenen Funktion zu ändern. Die Verwendung von with besteht darin, die Abfragedomäne von Variablen in der aufgerufenen Funktion zu ändern. Wir entfernen dies vor „call“ und „name“ im obigen Beispiel und fügen „with“ hinzu, um die Funktion von „with“ zu demonstrieren.


var name = &#39;window下的name<br/>&#39;;
var resultCon;
function fn1(myScope) {
  with (myScope) {
    resultCon.innerHTML += name;
  }
}

function MyObj(myScope) {
  var name = &#39;MyObj下的name<br/>&#39;;
Nach dem Login kopieren

Da die Verwendung von with nicht praktisch ist, müssen Sie with in der aufgerufenen Funktion hinzufügen. Einige Leute fragen sich vielleicht, ob es wie folgt aufgerufen werden kann die Gesamtrolle der Variablendomäne ändern, ohne die aufgerufene Funktion zu ändern?


with (myScope) {
  fn1();
  fn2();
  var obj = new MyObj();
  obj.doFunction();
}
Nach dem Login kopieren

Tut mir leid, nein! Daher kann Call and Apply in einigen ausgereiften Frameworks verwendet werden, wird jedoch selten verwendet, wenn JSHint zur Erkennung der JS-Syntax verwendet wird. In einigen JS-Codierungsanleitungen wird die Verwendung ebenfalls empfohlen so wenig wie möglich mit, da Änderungen an der Standardabfragekette von Variablen bei späteren Betreuern zu Verwirrung führen und einige Leistungsaspekte zu berücksichtigen sind. Verwenden Sie daher bitte mit Vorsicht.

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in den Umfang der JavaScript-Funktionen und diesen Zeiger. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Verwendung der Typedef-Struktur in der C-Sprache Verwendung der Typedef-Struktur in der C-Sprache May 09, 2024 am 10:15 AM

typedef struct wird in der C-Sprache zum Erstellen von Strukturtypaliasen verwendet, um die Verwendung von Strukturen zu vereinfachen. Es weist einem neuen Datentyp ein Alias ​​auf eine vorhandene Struktur zu, indem es den Strukturalias angibt. Zu den Vorteilen gehören verbesserte Lesbarkeit, Wiederverwendung von Code und Typprüfung. Hinweis: Die Struktur muss vor der Verwendung eines Alias ​​definiert werden. Der Alias ​​muss im Programm eindeutig sein und nur innerhalb des Bereichs gültig sein, in dem er deklariert ist.

So lösen Sie die in Java erwartete Variable So lösen Sie die in Java erwartete Variable May 07, 2024 am 02:48 AM

Variablenerwartungsausnahmen in Java können gelöst werden durch: Initialisierung von Variablen; Verwendung von Nullwerten; Verwendung von Überprüfungen und Zuweisungen;

Vor- und Nachteile von Verschlüssen in js Vor- und Nachteile von Verschlüssen in js May 10, 2024 am 04:39 AM

Zu den Vorteilen von JavaScript-Abschlüssen gehören die Aufrechterhaltung des variablen Bereichs, die Aktivierung von modularem Code, die verzögerte Ausführung und die Ereignisbehandlung. Zu den Nachteilen zählen Speicherverluste, erhöhte Komplexität, Leistungsaufwand und Auswirkungen der Bereichskette.

Was bedeutet include in c++? Was bedeutet include in c++? May 09, 2024 am 01:45 AM

Die Präprozessoranweisung #include in C++ fügt den Inhalt einer externen Quelldatei in die aktuelle Quelldatei ein und kopiert ihren Inhalt an die entsprechende Stelle in der aktuellen Quelldatei. Wird hauptsächlich zum Einschließen von Header-Dateien verwendet, die im Code benötigte Deklarationen enthalten, z. B. #include <iostream>, um Standard-Eingabe-/Ausgabefunktionen einzubinden.

C++-Smartpointer: eine umfassende Analyse ihres Lebenszyklus C++-Smartpointer: eine umfassende Analyse ihres Lebenszyklus May 09, 2024 am 11:06 AM

Lebenszyklus von C++-Smartpointern: Erstellung: Smartpointer werden erstellt, wenn Speicher zugewiesen wird. Eigentumsübertragung: Übertragen Sie das Eigentum durch einen Umzugsvorgang. Freigabe: Speicher wird freigegeben, wenn ein Smart Pointer den Gültigkeitsbereich verlässt oder explizit freigegeben wird. Objektzerstörung: Wenn das Objekt, auf das gezeigt wird, zerstört wird, wird der intelligente Zeiger zu einem ungültigen Zeiger.

Können die Definition und der Aufruf von Funktionen in C++ verschachtelt werden? Können die Definition und der Aufruf von Funktionen in C++ verschachtelt werden? May 06, 2024 pm 06:36 PM

Dürfen. C++ erlaubt verschachtelte Funktionsdefinitionen und Aufrufe. Externe Funktionen können integrierte Funktionen definieren und interne Funktionen können direkt innerhalb des Bereichs aufgerufen werden. Verschachtelte Funktionen verbessern die Kapselung, Wiederverwendbarkeit und Bereichskontrolle. Interne Funktionen können jedoch nicht direkt auf lokale Variablen externer Funktionen zugreifen, und der Rückgabewerttyp muss mit der Deklaration der externen Funktion übereinstimmen. Interne Funktionen können nicht selbstrekursiv sein.

Es gibt mehrere Situationen, auf die dies in js hinweist Es gibt mehrere Situationen, auf die dies in js hinweist May 06, 2024 pm 02:03 PM

Zu den Zeigertypen gehören in JavaScript: 1. Globales Objekt; 3. Konstruktoraufruf; 5. Pfeilfunktion (erbt dies); Darüber hinaus können Sie mit den Methoden bind(), call() und apply() explizit festlegen, worauf dies hinweist.

Der Unterschied zwischen let und var in vue Der Unterschied zwischen let und var in vue May 08, 2024 pm 04:21 PM

In Vue gibt es beim Deklarieren von Variablen zwischen let und var einen Unterschied im Gültigkeitsbereich: Gültigkeitsbereich: var hat einen globalen Gültigkeitsbereich und let hat einen Gültigkeitsbereich auf Blockebene. Bereich auf Blockebene: var erstellt keinen Bereich auf Blockebene, let erstellt einen Bereich auf Blockebene. Neudeklaration: var ermöglicht die Neudeklaration von Variablen im gleichen Bereich, let jedoch nicht.

See all articles