Inhaltsverzeichnis
Attribute von Argumenten
Einige wunderbare Verwendungsmöglichkeiten von Argumenten
Heim Web-Frontend js-Tutorial Detaillierte Erklärung der Argumente in js

Detaillierte Erklärung der Argumente in js

Mar 14, 2018 pm 04:52 PM
javascript 详解

Wenn wir eine Funktion in js aufrufen, übergeben wir oft einige Parameter an die Funktion. js speichert alle an die Funktion übergebenen Parameter in etwas, das als Argumente bezeichnet wird.

Alles in js ist ein Objekt, sogar Arrays und String-Funktionen sind Objekte. Dieses Ding namens Argumente ist also auch ein Objekt, und es ist ein spezielles Objekt. Sein Attributname basiert auf der Reihenfolge der übergebenen Parameter. Der Attributname des ersten Parameters ist „0“, der Attributname des zweiten Der Parameter ist „1“ usw. und verfügt außerdem über ein Längenattribut, das die Anzahl der aktuell übergebenen Funktionsparameter speichert. Oft nennen wir diese Art von Objekt ein Array-ähnliches Objekt. Array-ähnliche Objekte und Arrays werden beide aus Objekten geboren, aber Arrays sind der ältere Bruder und haben viel mehr Spielzeuge (Methoden) als Array-ähnliche Objekte, die nur die jüngeren Brüder sind, die Arrays sehr ähnlich sehen.

Moment mal, habe ich nicht gerade gesagt, dass Arrays auch Objekte sind? Was ist dieses Array-ähnliche Objekt? Es gibt keine Möglichkeit, js ist so flexibel. Dieses Array-ähnliche Objekt speichert nicht nur die an die Funktion übergebenen Parameter, sondern verfügt auch über einige andere Attribute, die später einzeln besprochen werden.

Da Array-ähnliche Objekte und Arrays viele Gemeinsamkeiten haben, können wir häufig die Call-Methode verwenden, damit das Array-ähnliche Objekt auch einige Methoden des Arrays verwenden kann, was bedeutet, dass der jüngere Bruder die Methode verwenden kann Spielen Sie mit den Spielzeugen seines älteren Bruders, wie zum Beispiel ... , gehen wir nicht zu weit, in diesem Artikel geht es nur um Argumente. Wenn Sie mehr darüber erfahren möchten, wie Objekte Array-Methoden ausleihen, lesen Sie bitte diesen Artikel.


Attribute von Argumenten

Als nächstes werfen wir einen Blick darauf, was im Argumentobjekt enthalten ist, ob es sich um ein Maultier oder ein Pferd handelt.

function showargs() {
    console.log( arguments );
}

showargs(1,2,3,4,5);
Nach dem Login kopieren

Als nächstes verwenden wir console.log, um das Argumentobjekt an die Konsole auszugeben. Ich muss hier sagen, dass das Konsolentool von Chrome extrem einfach zu verwenden ist (ich bin nicht hier, um Werbung zu machen).

<br/>
Nach dem Login kopieren

Hier können wir sehen, dass das Argumentobjekt die fünf Parameter speichert, die ich in Form eines Arrays übergeben habe, und außerdem die Anzahl (Länge) der tatsächlichen Parameter speichert, die ich an die Funktion übergeben habe. Und wir können sehen, dass ==_ proto _== der Argumente object auf object zeigt, was auch zeigt, dass es sich um ein Array-ähnliches Objekt und nicht um ein Array handelt.

Wenn wir mit diesem Objekt in Zukunft Funktionen schreiben, müssen wir nicht für alle formalen Parameter Parameternamen angeben und dann Parameter über Parameternamen abrufen. Wir können das Argumentobjekt direkt verwenden, um tatsächliche Parameter zu erhalten Parameter, also ist es nicht viel bequemer? <br/> In einigen Sprachen wird nach der Angabe des Parameternamens für die Funktion beim Aufruf der Funktion beurteilt, ob die aktuell übergebenen Parameter der Anzahl der von der Funktion definierten Parameter entsprechen. Andernfalls liegt ein Fehler vor Es wird gemeldet, aber flexibles js (ich sage nicht, js ist wirklich flexibel) und überprüft nicht, ob die Anzahl der an die Funktion übergebenen Parameter gleich der Anzahl der von der Funktion definierten Parameter ist. Um die Einfachheit des Codes zu demonstrieren, verwenden wir Argumente zum Aufrufen von Parametern, um die Parameternamen verschiedener Funktionen nicht zu verwechseln. Um (die Strenge des Codes) anzugeben, können wir außerdem Argumente verwenden, um zu bestimmen, ob die aktuelle Anzahl der übergebenen Parameter mit der von uns benötigten Anzahl übereinstimmt.

Hier ist ein Beispiel:

function add() {
    if( arguments.length == 2 ){        return arguments[0] + arguments[1];
    }else{        return &#39;传入参数不合法&#39;;
    }
}

console.log( add(2,3) );
console.log( add(1,2,3) );
Nach dem Login kopieren

Sehen Sie sich das Ergebnis an:

Detaillierte Erklärung der Argumente in js

Schließlich können wir auch sehen, dass es einen weiteren Parameter namens gibt arguments Das Attribut von callee. Dieses Attribut stellt einen Verweis auf die aktuelle Funktion dar. Wenn der in diesem Attribut gespeicherte Code der von uns aufgerufenen Funktion wirklich unverständlich ist, ist es an der Zeit, dass console.log seine Talente zeigt.

function showcallee() {
    var a = &#39;这里是代码&#39;;    var b = &#39;这是另一段代码&#39;;    var c = a + b;

    console.log(arguments.callee);    return c;
}
showcallee();
Nach dem Login kopieren

Detaillierte Erklärung der Argumente in js

Sind Sie genauso schockiert wie ich, wenn Sie das Ergebnis sehen? Ist das nicht der Code, den ich geschrieben habe? Dieser Code der Funktion gibt zurück.


Einige wunderbare Verwendungsmöglichkeiten von Argumenten

1. Verwenden Sie Argumente, um eine Überladung von Methoden zu implementieren

Im Folgenden verwenden wir das Argumentobjekt, um a zu implementieren Parameterbeziehung Die Additionsfunktion fügt die übergebenen Parameter hinzu und gibt sie zurück, unabhängig davon, wie viele Parameter übergeben werden.

function add() {
    var len = arguments.length,       
     sum = 0;    
     for(;len--;)
     {        sum += arguments[len];
    }    return sum;
}console.log( add(1,2,3) );  
 //6console.log( add(1,3) );     
 //4console.log( add(1,2,3,5,6,2,7) );   
 //26
Nach dem Login kopieren

Da js eine schwach typisierte Sprache ist und keinen Überladungsmechanismus hat, wird die ursprüngliche Funktion direkt überschrieben. Hier können wir Argumente verwenden, um die eingehenden Operationen zu bestimmen tatsächlichen Parametertyp und -menge und geben dann unterschiedliche Werte zurück.

2. Verwenden Sie arguments.callee, um die Rekursion zu implementieren

Werfen wir zunächst einen Blick darauf, wie wir die Rekursion zuvor implementiert haben

function factorial(num) { 
    if(num<=1) { 
        return 1; 
    }else { 
        return num * factorial(num-1); 
    } 
}
Nach dem Login kopieren

Aber wenn diese Funktion eine anonyme Funktion wird, können wir callee verwenden, um die Funktion zu rekursieren.

function factorial(num) { 
    if(num<=1) { 
        return 1; 
    }else { 
        return num * arguments.callee(num-1); 
    } 
}
Nach dem Login kopieren

这个方法虽然好用,但是有一点值得注意,ECMAScript4中为了限制js的灵活度,让js变得严格,新增了严格模式,在严格模式中我们被禁止不使用var来直接声明一个全局变量,当然这不是重点,重点是arguments.callee这个属性也被禁止了。不过这都不是事儿,ES6为我们新增了很多好用的变量声明方式和新的语法糖,作为一个时髦的前端,我们赶紧学习一些ES6的新语法吧。

相关推荐:

js中arguments.length解析

js函数的调用及有关隐式参数arguments和this的问题

JavaScript arguments 对象详解

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der Argumente in js. 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)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate 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)

Ausführliche Erklärung zur Erlangung von Administratorrechten in Win11 Ausführliche Erklärung zur Erlangung von Administratorrechten in Win11 Mar 08, 2024 pm 03:06 PM

Das Windows-Betriebssystem ist eines der beliebtesten Betriebssysteme der Welt und seine neue Version Win11 hat viel Aufmerksamkeit erregt. Im Win11-System ist die Erlangung von Administratorrechten ein wichtiger Vorgang. Mit Administratorrechten können Benutzer weitere Vorgänge und Einstellungen auf dem System durchführen. In diesem Artikel wird ausführlich beschrieben, wie Sie Administratorrechte im Win11-System erhalten und wie Sie Berechtigungen effektiv verwalten. Im Win11-System werden Administratorrechte in zwei Typen unterteilt: lokaler Administrator und Domänenadministrator. Ein lokaler Administrator verfügt über vollständige Administratorrechte für den lokalen Computer

Detaillierte Erläuterung der Divisionsoperation in Oracle SQL Detaillierte Erläuterung der Divisionsoperation in Oracle SQL Mar 10, 2024 am 09:51 AM

Detaillierte Erläuterung der Divisionsoperation in OracleSQL In OracleSQL ist die Divisionsoperation eine häufige und wichtige mathematische Operation, die zur Berechnung des Ergebnisses der Division zweier Zahlen verwendet wird. Division wird häufig in Datenbankabfragen verwendet. Daher ist das Verständnis der Divisionsoperation und ihrer Verwendung in OracleSQL eine der wesentlichen Fähigkeiten für Datenbankentwickler. In diesem Artikel werden die relevanten Kenntnisse über Divisionsoperationen in OracleSQL ausführlich erörtert und spezifische Codebeispiele als Referenz für die Leser bereitgestellt. 1. Divisionsoperation in OracleSQL

Detaillierte Erläuterung der Rolle und Verwendung des PHP-Modulo-Operators Detaillierte Erläuterung der Rolle und Verwendung des PHP-Modulo-Operators Mar 19, 2024 pm 04:33 PM

Der Modulo-Operator (%) in PHP wird verwendet, um den Rest der Division zweier Zahlen zu ermitteln. In diesem Artikel werden wir die Rolle und Verwendung des Modulo-Operators im Detail besprechen und spezifische Codebeispiele bereitstellen, um den Lesern ein besseres Verständnis zu erleichtern. 1. Die Rolle des Modulo-Operators Wenn wir in der Mathematik eine ganze Zahl durch eine andere ganze Zahl dividieren, erhalten wir einen Quotienten und einen Rest. Wenn wir beispielsweise 10 durch 3 dividieren, ist der Quotient 3 und der Rest ist 1. Um diesen Rest zu ermitteln, wird der Modulo-Operator verwendet. 2. Verwendung des Modulo-Operators In PHP verwenden Sie das %-Symbol, um den Modul darzustellen

Detaillierte Erläuterung der Funktion system() des Linux-Systemaufrufs Detaillierte Erläuterung der Funktion system() des Linux-Systemaufrufs Feb 22, 2024 pm 08:21 PM

Detaillierte Erläuterung der Funktion system() des Linux-Systems Der Systemaufruf ist ein sehr wichtiger Teil des Linux-Betriebssystems. Er bietet eine Möglichkeit, mit dem Systemkernel zu interagieren. Unter diesen ist die Funktion system() eine der am häufigsten verwendeten Systemaufruffunktionen. In diesem Artikel wird die Verwendung der Funktion system() ausführlich vorgestellt und entsprechende Codebeispiele bereitgestellt. Grundlegende Konzepte von Systemaufrufen Systemaufrufe sind eine Möglichkeit für Benutzerprogramme, mit dem Betriebssystemkernel zu interagieren. Benutzerprogramme fordern das Betriebssystem an, indem sie Systemaufruffunktionen aufrufen

Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Jan 05, 2024 pm 06:08 PM

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

Detaillierte Erläuterung des Linux-Befehls „curl'. Detaillierte Erläuterung des Linux-Befehls „curl'. Feb 21, 2024 pm 10:33 PM

Detaillierte Erläuterung des Linux-Befehls „curl“ Zusammenfassung: Curl ist ein leistungsstarkes Befehlszeilentool für die Datenkommunikation mit dem Server. In diesem Artikel wird die grundlegende Verwendung des Curl-Befehls vorgestellt und tatsächliche Codebeispiele bereitgestellt, um den Lesern zu helfen, den Befehl besser zu verstehen und anzuwenden. 1. Was ist Locken? Curl ist ein Befehlszeilentool zum Senden und Empfangen verschiedener Netzwerkanfragen. Es unterstützt mehrere Protokolle wie HTTP, FTP, TELNET usw. und bietet umfangreiche Funktionen wie Datei-Upload, Datei-Download, Datenübertragung und Proxy

Detaillierte Analyse der C-Sprachlernroute Detaillierte Analyse der C-Sprachlernroute Feb 18, 2024 am 10:38 AM

Als weit verbreitete Programmiersprache im Bereich der Softwareentwicklung ist die Sprache C für viele Programmieranfänger die erste Wahl. Das Erlernen der C-Sprache kann uns nicht nur dabei helfen, grundlegende Programmierkenntnisse zu erwerben, sondern auch unsere Problemlösungs- und Denkfähigkeiten verbessern. In diesem Artikel wird eine Roadmap zum Erlernen der C-Sprache im Detail vorgestellt, um Anfängern dabei zu helfen, ihren Lernprozess besser zu planen. 1. Grundlegende Grammatik lernen Bevor wir mit dem Erlernen der C-Sprache beginnen, müssen wir zunächst die grundlegenden Grammatikregeln der C-Sprache verstehen. Dazu gehören Variablen und Datentypen, Operatoren, Steueranweisungen (z. B. if-Anweisungen,

Erfahren Sie mehr über Promise.resolve() Erfahren Sie mehr über Promise.resolve() Feb 18, 2024 pm 07:13 PM

Eine detaillierte Erklärung von Promise.resolve() erfordert spezifische Codebeispiele. Promise ist ein Mechanismus in JavaScript zur Verarbeitung asynchroner Vorgänge. In der tatsächlichen Entwicklung ist es häufig erforderlich, einige asynchrone Aufgaben zu verarbeiten, die nacheinander ausgeführt werden müssen, und die Methode Promise.resolve () wird verwendet, um ein erfülltes Promise-Objekt zurückzugeben. Promise.resolve() ist eine statische Methode der Promise-Klasse, die a akzeptiert

See all articles