Table des matières
Attributs des arguments
Quelques utilisations merveilleuses des arguments
Maison interface Web js tutoriel Explication détaillée des arguments en js

Explication détaillée des arguments en js

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

Lorsque nous appelons une fonction en js, nous transmettons souvent certains paramètres à la fonction. js stocke tous les paramètres passés à la fonction dans quelque chose appelé arguments, alors qu'est-ce que c'est exactement ?

Tout en js est un objet, même les fonctions de tableau et de chaîne sont des objets. Donc, cette chose appelée arguments est également un objet, et c'est un objet spécial. Son nom d'attribut est basé sur la séquence des paramètres transmis. Le nom d'attribut du premier paramètre est « 0 » et le nom d'attribut du second. Le paramètre est '1', et ainsi de suite, et il a également un attribut de longueur, qui stocke le nombre de paramètres de fonction actuellement transmis. Nous appelons souvent ce type d'objet un objet de type tableau. Les objets de type tableau et les tableaux sont tous deux nés d'objets, mais les tableaux sont le frère aîné et ont beaucoup plus de jouets (méthodes) que les objets de type tableau ne sont que les frères plus jeunes qui ressemblent beaucoup à des tableaux.

Attendez une minute, ne viens-je pas de dire que les tableaux sont aussi des objets ? Qu'est-ce que cet objet semblable à un tableau maintenant ? Il n'y a aucun moyen, js est tellement flexible. Cet objet de type tableau stocke non seulement les paramètres transmis à la fonction, mais possède également d'autres attributs, qui seront discutés un par un plus tard.

Parce que les objets de type tableau et les tableaux ont beaucoup en commun, nous pouvons souvent utiliser la méthode d'appel pour permettre à l'objet de type tableau d'utiliser également certaines des méthodes du tableau, c'est-à-dire laisser le frère cadet jouer avec les jouets de son frère aîné, comme... , n'allons pas trop loin, cet article ne parle que d'arguments. Si vous voulez en savoir plus sur la façon dont les objets empruntent les méthodes de tableau, veuillez vous référer à cet article.


Attributs des arguments

Jetons ensuite un coup d'œil à ce qu'il y a dans l'objet arguments, qu'il s'agisse d'un mulet ou d'un cheval.

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

showargs(1,2,3,4,5);
Copier après la connexion

Ensuite, nous utilisons console.log pour afficher l'objet arguments sur la console. Je dois dire ici que l'outil de console de Chrome est extrêmement simple à utiliser (je ne suis pas ici pour faire de la publicité).

<br/>
Copier après la connexion

Ici, nous pouvons voir que l'objet arguments stocke les cinq paramètres que j'ai transmis sous la forme d'un tableau, et enregistre également le nombre (longueur) des paramètres réels que j'ai transmis à la fonction. Et nous pouvons voir que ==_ proto _== des arguments object pointe vers object, ce qui montre également qu'il s'agit d'un objet de type tableau, pas d'un tableau.

Avec cet objet, lorsque nous écrirons des fonctions à l'avenir, nous n'avons pas besoin de spécifier les noms de paramètres pour tous les paramètres formels, puis d'obtenir les paramètres via les noms de paramètres. Nous pouvons directement utiliser l'objet arguments pour obtenir les paramètres réels. paramètres, donc n'est-ce pas beaucoup plus pratique ? <br/> Dans certaines langues, après avoir spécifié le nom du paramètre de la fonction, lorsque la fonction est appelée, il sera jugé si les paramètres actuellement transmis sont égaux au nombre de paramètres définis par la fonction. Sinon, une erreur. sera signalé, mais flexible js (pas moi, disons, js est vraiment flexible) et ne vérifiera pas si le nombre de paramètres passés à la fonction est égal au nombre de paramètres définis par la fonction. Donc afin de montrer (la simplicité du code), nous utilisons des arguments pour appeler des paramètres afin de ne pas confondre les noms de paramètres entre les différentes fonctions. De plus, afin de montrer (la rigueur du code), nous pouvons également utiliser des arguments pour déterminer si le nombre actuel de paramètres transmis est cohérent avec le nombre dont nous avons besoin.

Voici un exemple :

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) );
Copier après la connexion

Regardez le résultat :

Explication détaillée des arguments en js

Enfin, nous pouvons également voir qu'il existe un autre argument appelé L'attribut de l'appelé, cet attribut représente une référence à la fonction courante. Pour faire simple, lorsque le code de la fonction que nous appelons stocké dans cet attribut est vraiment incompréhensible, il est temps pour console.log de montrer ses talents.

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

    console.log(arguments.callee);    return c;
}
showcallee();
Copier après la connexion

Explication détaillée des arguments en js

Êtes-vous aussi choqué que moi quand vous voyez le résultat ? N'est-ce pas le code que j'ai écrit arguments.callee complètement Ce code de cette fonction revient.


Quelques utilisations merveilleuses des arguments

1. Utiliser des arguments pour implémenter la surcharge des méthodes

Ci-dessous, nous utilisons l'objet arguments pour implémenter un relation entre les paramètres La fonction d'ajout, quel que soit le nombre de paramètres transmis, sera renvoyée après l'ajout des paramètres transmis.

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
Copier après la connexion

Puisque js est un langage faiblement typé et n'a pas de mécanisme de surcharge, lorsque nous réécrivons une fonction, la fonction d'origine sera directement écrasée. Ici, nous pouvons utiliser des arguments pour déterminer les différentes opérations entrantes. sur le type et la quantité réels du paramètre, puis renvoient des valeurs différentes.

2. Utilisez arguments.callee pour implémenter la récursion

Voyons d'abord comment nous avons implémenté la récursion auparavant. Il s'agit d'une fonction qui règle les factorielles

function factorial(num) { 
    if(num<=1) { 
        return 1; 
    }else { 
        return num * factorial(num-1); 
    } 
}
Copier après la connexion

Mais lorsque cette fonction devient une fonction anonyme, nous pouvons utiliser l'appelé pour récurer la fonction.

function factorial(num) { 
    if(num<=1) { 
        return 1; 
    }else { 
        return num * arguments.callee(num-1); 
    } 
}
Copier après la connexion

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

相关推荐:

js中arguments.length解析

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

JavaScript arguments 对象详解

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Explication détaillée de l'obtention des droits d'administrateur dans Win11 Explication détaillée de l'obtention des droits d'administrateur dans Win11 Mar 08, 2024 pm 03:06 PM

Le système d'exploitation Windows est l'un des systèmes d'exploitation les plus populaires au monde et sa nouvelle version Win11 a beaucoup attiré l'attention. Dans le système Win11, l'obtention des droits d'administrateur est une opération importante. Les droits d'administrateur permettent aux utilisateurs d'effectuer davantage d'opérations et de paramètres sur le système. Cet article présentera en détail comment obtenir les autorisations d'administrateur dans le système Win11 et comment gérer efficacement les autorisations. Dans le système Win11, les droits d'administrateur sont divisés en deux types : administrateur local et administrateur de domaine. Un administrateur local dispose de tous les droits d'administration sur l'ordinateur local

Explication détaillée du fonctionnement de la division dans Oracle SQL Explication détaillée du fonctionnement de la division dans Oracle SQL Mar 10, 2024 am 09:51 AM

Explication détaillée de l'opération de division dans OracleSQL Dans OracleSQL, l'opération de division est une opération mathématique courante et importante, utilisée pour calculer le résultat de la division de deux nombres. La division est souvent utilisée dans les requêtes de bases de données. Comprendre le fonctionnement de la division et son utilisation dans OracleSQL est donc l'une des compétences essentielles des développeurs de bases de données. Cet article discutera en détail des connaissances pertinentes sur les opérations de division dans OracleSQL et fournira des exemples de code spécifiques pour référence aux lecteurs. 1. Opération de division dans OracleSQL

Explication détaillée du rôle et de l'utilisation de l'opérateur modulo PHP Explication détaillée du rôle et de l'utilisation de l'opérateur modulo PHP Mar 19, 2024 pm 04:33 PM

L'opérateur modulo (%) en PHP est utilisé pour obtenir le reste de la division de deux nombres. Dans cet article, nous discuterons en détail du rôle et de l'utilisation de l'opérateur modulo et fournirons des exemples de code spécifiques pour aider les lecteurs à mieux comprendre. 1. Le rôle de l'opérateur modulo En mathématiques, lorsqu'on divise un entier par un autre entier, on obtient un quotient et un reste. Par exemple, lorsque l’on divise 10 par 3, le quotient est 3 et le reste est 1. L'opérateur modulo est utilisé pour obtenir ce reste. 2. Utilisation de l'opérateur modulo En PHP, utilisez le symbole % pour représenter le module

Explication détaillée de la fonction d'appel système Linux system() Explication détaillée de la fonction d'appel système Linux system() Feb 22, 2024 pm 08:21 PM

Explication détaillée de la fonction d'appel système Linux system() L'appel système est une partie très importante du système d'exploitation Linux. Il fournit un moyen d'interagir avec le noyau système. Parmi elles, la fonction system() est l’une des fonctions d’appel système couramment utilisées. Cet article présentera en détail l’utilisation de la fonction system() et fournira des exemples de code correspondants. Concepts de base des appels système Les appels système sont un moyen permettant aux programmes utilisateur d'interagir avec le noyau du système d'exploitation. Les programmes utilisateur demandent au système d'exploitation en appelant des fonctions d'appel système

Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Jan 05, 2024 pm 06:08 PM

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

Explication détaillée de la commande Linux curl Explication détaillée de la commande Linux curl Feb 21, 2024 pm 10:33 PM

Explication détaillée de la commande curl de Linux Résumé : curl est un puissant outil de ligne de commande utilisé pour la communication de données avec le serveur. Cet article présentera l'utilisation de base de la commande curl et fournira des exemples de code réels pour aider les lecteurs à mieux comprendre et appliquer la commande. 1. Qu’est-ce que la boucle ? curl est un outil de ligne de commande utilisé pour envoyer et recevoir diverses requêtes réseau. Il prend en charge plusieurs protocoles, tels que HTTP, FTP, TELNET, etc., et fournit des fonctions riches, telles que le téléchargement de fichiers, le téléchargement de fichiers, la transmission de données, le proxy.

En savoir plus sur Promise.resolve() En savoir plus sur Promise.resolve() Feb 18, 2024 pm 07:13 PM

Une explication détaillée de Promise.resolve() nécessite des exemples de code spécifiques. Promise est un mécanisme en JavaScript pour gérer les opérations asynchrones. Dans le développement réel, il est souvent nécessaire de traiter certaines tâches asynchrones qui doivent être exécutées dans l'ordre, et la méthode Promise.resolve() est utilisée pour renvoyer un objet Promise qui a été rempli. Promise.resolve() est une méthode statique de la classe Promise, qui accepte un

Analyse détaillée du parcours d'apprentissage du langage C Analyse détaillée du parcours d'apprentissage du langage C Feb 18, 2024 am 10:38 AM

En tant que langage de programmation largement utilisé dans le domaine du développement de logiciels, le langage C est le premier choix de nombreux programmeurs débutants. L'apprentissage du langage C peut non seulement nous aider à acquérir des connaissances de base en programmation, mais également à améliorer nos capacités de résolution de problèmes et de réflexion. Cet article présentera en détail une feuille de route d'apprentissage du langage C pour aider les débutants à mieux planifier leur processus d'apprentissage. 1. Apprendre la grammaire de base Avant de commencer à apprendre le langage C, nous devons d'abord comprendre les règles de grammaire de base du langage C. Cela inclut les variables et les types de données, les opérateurs, les instructions de contrôle (telles que les instructions if,

See all articles