Maison >interface Web >js tutoriel >Solution aux compétences de surcharge de la fonction JS_javascript
Dans la programmation orientée objet, de nombreux langages prennent en charge la surcharge de fonctions, qui peut effectuer différentes opérations en fonction du nombre et du type de paramètres transmis par la fonction. Cependant, JS ne la prend pas en charge et nous oblige à faire un peu plus. petits gestes.
Il existe une variable intéressante appelée arguments dans le contexte d'exécution de fonction de JS. Elle stocke tous les paramètres passés lors de l'exécution de la fonction sous forme de tableau, même si la définition de la fonction ne définit pas autant de paramètres formels. paramètres. Une autre particularité est que par rapport au type Array, la variable arguments n'a et n'a qu'un seul attribut de longueur. Les méthodes Array, telles que push, pop, etc., ne l'ont pas. C'est juste un "pseudo-tableau" : elle en a. l'attribut length et stocke le tableau. Le tableau est accessible à l'aide de l'accesseur de tableau [] et est en lecture seule et non inscriptible.
1. Surcharge pour différents nombres de paramètres
Cela devrait être clair ici, utilisez simplement l'attribut length de la fonction arguments pour juger.
2. Surcharge des différents types de paramètres Pour un langage typé dynamiquement comme JS, la nature arbitraire des déclarations de variables dilue l'importance des types de variables stricts dans l'esprit des développeurs (PS : c'est également basé sur le système ECMA, et AS a introduit le type obligatoire de déclaration de variable). De nombreux BUG inattendus sont en réalité provoqués par cette conversion automatique des types de variables. En fait, JS nous fournit une méthode très précise pour détecter strictement le type de variables. Les plus courantes sont la méthode typeof et l'attribut constructeur.
Copier le code
Copier le code
Copier le code
Ci-joint une fonction très intelligente qui détecte strictement les types et les numéros de paramètres :