Maison > interface Web > js tutoriel > Comment puis-je simuler des paramètres nommés dans des appels de fonction JavaScript ?

Comment puis-je simuler des paramètres nommés dans des appels de fonction JavaScript ?

Mary-Kate Olsen
Libérer: 2024-12-06 00:51:09
original
161 Les gens l'ont consulté

How Can I Simulate Named Parameters in JavaScript Function Calls?

Simulation de paramètres nommés dans les appels de fonction JavaScript

Dans les langages de programmation comme C#, les paramètres nommés permettent des appels de fonction clairs et concis en spécifiant des noms de paramètres aux côtés de leurs valeurs. Cependant, JavaScript ne fournit pas intrinsèquement cette fonctionnalité. Cependant, il existe des moyens d'obtenir un effet similaire.

ES2015 et versions ultérieures : déstructuration des paramètres

Avec l'introduction d'ES2015, la déstructuration des paramètres offre un mécanisme intégré pour simuler des paramètres nommés. Grâce à cette fonctionnalité, une fonction peut accepter un objet comme argument et extraire des propriétés spécifiques en tant que paramètres nommés :

function myFunction({ param1, param2 } = {}) {
  // ...function body...
}
Copier après la connexion

Les appelants peuvent ensuite transmettre un objet avec les valeurs de paramètre souhaitées :

myFunction({ param1: 70, param2: 175 });
Copier après la connexion

ES5 : Function.prototype.toString et association d'objets

Dans ES5, une méthode hackish consiste à utiliser Function.prototype.toString() pour analyser la signature de la fonction et identifier les noms des paramètres. Cela permet d'associer les propriétés d'un objet aux paramètres correspondants :

var func = parameterfy(function(a, b, c) {
  console.log('a is ' + a, ' | b is ' + b, ' | c is ' + c);     
});

func(1, 2, 3); // a is 1  | b is 2  | c is 3
func(1, {b:2, c:3}); // a is 1  | b is 2  | c is 3
Copier après la connexion

Cependant, cette approche présente des inconvénients :

  • Si le dernier argument est un objet, il est traité en tant qu'"objet argument nommé".
  • La fonction recevra toujours tous les arguments définis, avec des valeurs non définies comme espaces réservés.

Considérations supplémentaires

Au lieu de créer des wrappers de fonction, vous pouvez également avoir des fonctions qui acceptent une fonction et des arguments supplémentaires, ou étendre Function. prototype pour prendre en charge l'exécution de fonctions avec des paramètres nommés.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal