Maison interface Web js tutoriel Notes d'étude Javascript - Fonctions (4) : arguments object_basic knowledge

Notes d'étude Javascript - Fonctions (4) : arguments object_basic knowledge

May 16, 2016 pm 04:30 PM
javascript 对象

Chaque fonction Javascript peut accéder à une variable spéciale dans sa propre portée : les arguments. Cette variable contient une liste de tous les arguments passés à la fonction.
L'objet arguments n'est pas un tableau. Bien que syntaxiquement, il ait les mêmes fonctionnalités qu’un tableau, il possède par exemple une propriété length. Mais il n’hérite pas d’Array.prototype, en fait, c’est un objet.
Par conséquent, nous ne pouvons pas utiliser directement certaines méthodes de tableau telles que push, pop ou slice sur les arguments. Donc, pour utiliser ces méthodes, nous devons le convertir en un véritable tableau.

Convertir en tableau

Le code suivant renverra un tableau contenant tous les éléments de l'objet arguments.

Array.prototype.slice.call(arguments);
Étant donné que la conversion est très lente, cela n'est pas recommandé dans les programmes dont les performances sont critiques.

Paramètres de réussite

Ce qui suit est une méthode recommandée pour transmettre l'objet arguments d'une fonction à une autre.

Copier le code Le code est le suivant :

fonction foo() {
bar.apply(null, arguments);
>
barre de fonctions (a, b, c) {
// fais des trucs ici
>

Une autre méthode intelligente consiste à utiliser call et apply en même temps pour créer rapidement une méthode externe non liée.

Copier le code Le code est le suivant :

fonction Foo() {}
Foo.prototype.method = fonction (a, b, c) {
console.log(this, a, b, c);
};
// Créer une version indépendante de "méthode"
// Il prend les paramètres : this, arg1, arg2...argN
Foo.method = function() {
// Résultat : Foo.prototype.method.call(this, arg1, arg2... argN)
Function.call.apply(Foo.prototype.method, arguments);
};

La relation entre les paramètres de fonction et l'attribut arguments

L'objet

arguments crée des méthodes getter et setter à la fois pour ses propres propriétés et pour les paramètres formels de ses fonctions.
Par conséquent, la modification des paramètres formels d’une fonction affectera les valeurs des propriétés de l’objet arguments correspondant, et vice versa.

Copier le code Le code est le suivant :

fonction foo(a, b, c) {
arguments[0] = 2;
une; // 2
b = 4;
arguments[1]; // 4
var d = c;
d = 9;
c;//3
>
foo(1, 2, 3);

Problèmes de performances

les arguments ne seront pas créés dans seulement deux situations, l'une est déclarée comme variable locale à l'intérieur de la fonction et l'autre est utilisée comme paramètre formel de la fonction. Sinon, l'objet arguments est toujours créé.
Étant donné que les méthodes getter et setter sont toujours créées avec l'objet arguments, l'utilisation des arguments elle-même a peu d'impact sur les performances.
Cependant, il existe une situation qui affecte sérieusement les performances de Javascript, à savoir l'utilisation de arguments.callee.

Copier le code Le code est le suivant :

fonction foo() {
arguments.callee; // faire quelque chose avec cet objet fonction
arguments.callee.caller; // et l'objet fonction appelant
>
fonction bigLoop() {
pour (var je = 0; je < 100000; je ) {
foo(); // Serait normalement intégré...
>
>

Dans le code ci-dessus, la fonction foo n'est plus une simple extension en ligne, car elle a besoin de se connaître elle-même et de connaître son appelant. Cela annule non seulement le gain de performances apporté par l'expansion en ligne, mais détruit également l'encapsulation de la fonction, car la fonction elle-même peut devoir dépendre d'un contexte d'appel spécifique.
Par conséquent, il est recommandé d’essayer de ne pas utiliser arguments.callee.

Ce qui précède concerne l'objet arguments Javascript. Le comprenez-vous bien, en termes simples ?

les arguments font référence à l'objet paramètre de la fonction (faisant référence aux paramètres réels transmis)

arguments.length fait référence à la longueur de l'objet paramètre de la fonction
arguments[i] fait référence à la valeur du i-ième paramètre (le premier est 0)

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.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

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)

WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel Dec 17, 2023 pm 05:30 PM

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Qu'est-ce que l'objet Request en PHP ? Qu'est-ce que l'objet Request en PHP ? Feb 27, 2024 pm 09:06 PM

L'objet Request en PHP est un objet utilisé pour gérer les requêtes HTTP envoyées par le client au serveur. Grâce à l'objet Request, nous pouvons obtenir les informations de demande du client, telles que la méthode de demande, les informations d'en-tête de demande, les paramètres de demande, etc., afin de traiter et de répondre à la demande. En PHP, vous pouvez utiliser des variables globales telles que $_REQUEST, $_GET, $_POST, etc. pour obtenir les informations demandées, mais ces variables ne sont pas des objets, mais des tableaux. Afin de traiter les informations demandées de manière plus flexible et plus pratique, vous pouvez

Comment convertir le tableau de résultats d'une requête MySQL en objet ? Comment convertir le tableau de résultats d'une requête MySQL en objet ? Apr 29, 2024 pm 01:09 PM

Voici comment convertir un tableau de résultats de requête MySQL en objet : Créez un tableau d'objets vide. Parcourez le tableau résultant et créez un nouvel objet pour chaque ligne. Utilisez une boucle foreach pour attribuer les paires clé-valeur de chaque ligne aux propriétés correspondantes du nouvel objet. Ajoute un nouvel objet au tableau d'objets. Fermez la connexion à la base de données.

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

JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel Dec 17, 2023 pm 05:13 PM

JavaScript et WebSocket : Construire un système efficace de prévisions météorologiques en temps réel Introduction : Aujourd'hui, la précision des prévisions météorologiques revêt une grande importance pour la vie quotidienne et la prise de décision. À mesure que la technologie évolue, nous pouvons fournir des prévisions météorologiques plus précises et plus fiables en obtenant des données météorologiques en temps réel. Dans cet article, nous apprendrons comment utiliser la technologie JavaScript et WebSocket pour créer un système efficace de prévisions météorologiques en temps réel. Cet article démontrera le processus de mise en œuvre à travers des exemples de code spécifiques. Nous

Quelle est la différence entre les tableaux et les objets en PHP ? Quelle est la différence entre les tableaux et les objets en PHP ? Apr 29, 2024 pm 02:39 PM

En PHP, un tableau est une séquence ordonnée et les éléments sont accessibles par index ; un objet est une entité avec des propriétés et des méthodes, créée via le mot-clé new. L'accès au tableau se fait via l'index, l'accès aux objets se fait via les propriétés/méthodes. Les valeurs du tableau sont transmises et les références d'objet sont transmises.

Comment obtenir facilement le code d'état HTTP en JavaScript Comment obtenir facilement le code d'état HTTP en JavaScript Jan 05, 2024 pm 01:37 PM

Introduction à la méthode d'obtention du code d'état HTTP en JavaScript : Dans le développement front-end, nous devons souvent gérer l'interaction avec l'interface back-end, et le code d'état HTTP en est une partie très importante. Comprendre et obtenir les codes d'état HTTP nous aide à mieux gérer les données renvoyées par l'interface. Cet article explique comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournit des exemples de code spécifiques. 1. Qu'est-ce que le code d'état HTTP ? Le code d'état HTTP signifie que lorsque le navigateur lance une requête au serveur, le service

À quoi dois-je faire attention lorsqu'une fonction C++ renvoie un objet ? À quoi dois-je faire attention lorsqu'une fonction C++ renvoie un objet ? Apr 19, 2024 pm 12:15 PM

En C++, il y a trois points à noter lorsqu'une fonction renvoie un objet : Le cycle de vie de l'objet est géré par l'appelant pour éviter les fuites mémoire. Évitez les pointeurs suspendus et assurez-vous que l'objet reste valide après le retour de la fonction en allouant dynamiquement de la mémoire ou en renvoyant l'objet lui-même. Le compilateur peut optimiser la génération de copie de l'objet renvoyé pour améliorer les performances, mais si l'objet est transmis par sémantique de valeur, aucune génération de copie n'est requise.

See all articles