


Javascript-Studiennotizen – Funktionen (4): Argumente object_basic Wissen
Jede Javascript-Funktion kann auf eine spezielle Variable in ihrem eigenen Bereich zugreifen – Argumente. Diese Variable enthält eine Liste aller an die Funktion übergebenen Argumente.
Das Argumentobjekt ist kein Array. Obwohl es syntaktisch die gleichen Merkmale wie ein Array aufweist, verfügt es beispielsweise über eine Längeneigenschaft. Aber es erbt nicht von Array.prototype, sondern ist tatsächlich ein Objekt.
Daher können wir einige Array-Methoden wie Push, Pop oder Slice nicht direkt für Argumente verwenden. Um diese Methoden verwenden zu können, müssen wir sie in ein echtes Array konvertieren.
In Array konvertieren
Der folgende Code gibt ein Array zurück, das alle Elemente des Argumentobjekts enthält.
Array.prototype.slice.call(arguments);
Da die Konvertierung sehr langsam ist, ist dies bei leistungskritischen Programmen nicht zu empfehlen.
Parameter übergeben
Das Folgende ist eine empfohlene Methode, um das Argumentobjekt von einer Funktion an eine andere zu übergeben.
Funktion foo() {
bar.apply(null, arguments);
}
Funktionsleiste(a, b, c) {
// mach Sachen hier
}
Eine weitere clevere Methode besteht darin, call und apply gleichzeitig zu verwenden, um schnell eine ungebundene äußere Methode zu erstellen.
Funktion Foo() {}
Foo.prototype.method = function(a, b, c) {
console.log(this, a, b, c);
};
// Erstelle eine ungebundene Version von „method“
// Es nimmt die Parameter an: this, arg1, arg2...argN
Foo.method = function() {
// Ergebnis: Foo.prototype.method.call(this, arg1, arg2... argN)
Function.call.apply(Foo.prototype.method, arguments);
};
Die Beziehung zwischen Funktionsparametern und Argumentattributen
Das Objektarguments erstellt Getter- und Setter-Methoden sowohl für seine eigenen Eigenschaften als auch für die formalen Parameter seiner Funktionen.
Daher wirkt sich die Änderung der formalen Parameter einer Funktion auf die Eigenschaftswerte des entsprechenden Argumentobjekts aus und umgekehrt.
Funktion foo(a, b, c) {
Argumente[0] = 2;
a; // 2
b = 4;
Argumente[1]; // 4
var d = c;
d = 9;
c; // 3
}
foo(1, 2, 3);
Leistungsprobleme
Argumente werden nur in zwei Situationen erstellt: eines wird als lokale Variable innerhalb der Funktion deklariert und das andere wird als formaler Parameter der Funktion verwendet. Andernfalls wird immer das Argumentobjekt erstellt.
Da Getter- und Setter-Methoden immer mit dem Argumentobjekt erstellt werden, hat die Verwendung von Argumenten selbst nur geringe Auswirkungen auf die Leistung.
Es gibt jedoch eine Situation, die die Leistung von Javascript ernsthaft beeinträchtigt, und zwar die Verwendung von arguments.callee.
Funktion foo() {
arguments.callee; // etwas mit diesem Funktionsobjekt machen
arguments.callee.caller; // und das aufrufende Funktionsobjekt
}
Funktion bigLoop() {
for(var i = 0; i < 100000; i ) {
foo(); // Würde normalerweise inline sein...
}
}
Im obigen Code ist die foo-Funktion keine einfache Inline-Erweiterung mehr, da sie sowohl sich selbst als auch ihren Aufrufer kennen muss. Dies macht nicht nur den Leistungsgewinn durch die Inline-Erweiterung zunichte, sondern zerstört auch die Kapselung der Funktion, da die Funktion selbst möglicherweise von einem bestimmten Aufrufkontext abhängig sein muss.
Daher wird empfohlen, dass Sie versuchen, arguments.callee nicht zu verwenden.
Das Obige dreht sich alles um das Javascript-Argument-Objekt. Versteht ihr es gründlich?
Argumente beziehen sich auf das Parameterobjekt der Funktion (bezogen auf die tatsächlich übergebenen Parameter)
arguments.length bezieht sich auf die Länge des Parameterobjekts der Funktion
arguments[i] bezieht sich auf den Wert des i-ten Parameters (der erste ist 0)

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



WebSocket und JavaScript: Schlüsseltechnologien zur Realisierung von Echtzeit-Überwachungssystemen Einführung: Mit der rasanten Entwicklung der Internet-Technologie wurden Echtzeit-Überwachungssysteme in verschiedenen Bereichen weit verbreitet eingesetzt. Eine der Schlüsseltechnologien zur Erzielung einer Echtzeitüberwachung ist die Kombination von WebSocket und JavaScript. In diesem Artikel wird die Anwendung von WebSocket und JavaScript in Echtzeitüberwachungssystemen vorgestellt, Codebeispiele gegeben und deren Implementierungsprinzipien ausführlich erläutert. 1. WebSocket-Technologie

So konvertieren Sie ein MySQL-Abfrageergebnis-Array in ein Objekt: Erstellen Sie ein leeres Objekt-Array. Durchlaufen Sie das resultierende Array und erstellen Sie für jede Zeile ein neues Objekt. Verwenden Sie eine foreach-Schleife, um die Schlüssel-Wert-Paare jeder Zeile den entsprechenden Eigenschaften des neuen Objekts zuzuweisen. Fügt dem Objektarray ein neues Objekt hinzu. Schließen Sie die Datenbankverbindung.

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Einführung: Heutzutage ist die Genauigkeit von Wettervorhersagen für das tägliche Leben und die Entscheidungsfindung von großer Bedeutung. Mit der Weiterentwicklung der Technologie können wir genauere und zuverlässigere Wettervorhersagen liefern, indem wir Wetterdaten in Echtzeit erhalten. In diesem Artikel erfahren Sie, wie Sie mit JavaScript und WebSocket-Technologie ein effizientes Echtzeit-Wettervorhersagesystem aufbauen. In diesem Artikel wird der Implementierungsprozess anhand spezifischer Codebeispiele demonstriert. Wir

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

In PHP ist ein Array eine geordnete Sequenz, und auf Elemente wird über einen Index zugegriffen. Ein Objekt ist eine Entität mit Eigenschaften und Methoden, die über das Schlüsselwort new erstellt werden. Der Array-Zugriff erfolgt über einen Index, der Objektzugriff über Eigenschaften/Methoden. Es werden Array-Werte und Objektreferenzen übergeben.

PHP-Funktionen können Daten in eine benutzerdefinierte Struktur einkapseln, indem sie ein Objekt mithilfe einer Return-Anweisung zurückgeben, gefolgt von einer Objektinstanz. Syntax: functionget_object():object{}. Dadurch können Objekte mit benutzerdefinierten Eigenschaften und Methoden erstellt und Daten in Form von Objekten verarbeitet werden.

Das Request-Objekt in PHP ist ein Objekt, das zur Verarbeitung von HTTP-Anfragen verwendet wird, die vom Client an den Server gesendet werden. Über das Request-Objekt können wir die Anforderungsinformationen des Clients abrufen, z. B. die Anforderungsmethode, die Anforderungsheaderinformationen, die Anforderungsparameter usw., um die Anforderung zu verarbeiten und zu beantworten. In PHP können Sie globale Variablen wie $_REQUEST, $_GET, $_POST usw. verwenden, um angeforderte Informationen zu erhalten, aber diese Variablen sind keine Objekte, sondern Arrays. Um Anfrageinformationen flexibler und bequemer bearbeiten zu können, können Sie dies tun

In C++ sind drei Punkte zu beachten, wenn eine Funktion ein Objekt zurückgibt: Der Lebenszyklus des Objekts wird vom Aufrufer verwaltet, um Speicherlecks zu verhindern. Vermeiden Sie baumelnde Zeiger und stellen Sie sicher, dass das Objekt nach der Rückkehr der Funktion gültig bleibt, indem Sie dynamisch Speicher zuweisen oder das Objekt selbst zurückgeben. Der Compiler optimiert möglicherweise die Kopiegenerierung des zurückgegebenen Objekts, um die Leistung zu verbessern. Wenn das Objekt jedoch anhand der Wertesemantik übergeben wird, ist keine Kopiegenerierung erforderlich.
