Maison interface Web js tutoriel javascript函数重载解决方案分享_基础知识

javascript函数重载解决方案分享_基础知识

May 16, 2016 pm 04:59 PM
函数重载

JS的函数定义可以指定形式参数名称,多多少少我们会以为js至少可以支持参数个数不同的方法重载,然而遗憾的是这仅仅是一个假象,js所有的参数都是以arguments传递过去的,这个参数类似于数组,在函数调用的时候,所有的实参都是保存在了这个数据结构里面,我们定义函数的时候所指定的形式参数其实是为这个数据结构里面的数据定义一个快捷的访问方式。也就是说js所有的函数都是支持无限个参数的,加上数据类型是弱类型,那么JS的函数除了名称就真的没有方法区别了?

办法总是有的,我们可以利用JavaScript中的特殊对象arguments来模拟函数重载。用它来判断传入参数的个数或类型以区分重载。

1.根据参数个数重载

js判断传入参数数量可以用arguments.length这个属性来判断;

复制代码 代码如下:


2.根据参数类型重载

判断变量类型的3种方法:
1.用 typeof 语句判断变量类型,typeof语句返回类型对应的字符串。
2.用 instanceof 语句判断变量类型,instanceof语句返回true/false。
3.用 constructor 属性判断变量类型,这个属性返回用来构造该变量的构造函数引用。
对照表:可以看出用 typeof 不能准确的判断出具体的类型,所以我们用 constructor 来进行判断。

typeof string number object function boolean object object
constructor String Number Object Function Boolean Array User Define

复制代码 代码如下:


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

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

Comment distinguer la surcharge de fonctions et la réécriture en C++ Comment distinguer la surcharge de fonctions et la réécriture en C++ Apr 19, 2024 pm 04:21 PM

La surcharge de fonctions autorise des fonctions portant le même nom mais des signatures différentes dans une classe, tandis que le remplacement de fonctions se produit dans une classe dérivée lorsqu'elle remplace une fonction portant la même signature dans la classe de base, offrant ainsi un comportement différent.

Surcharge et réécriture des fonctions PHP Surcharge et réécriture des fonctions PHP Apr 26, 2024 pm 05:12 PM

La surcharge et la réécriture de fonctions sont prises en charge dans PHP pour créer du code flexible et réutilisable. Surcharge de fonctions : permet la création de fonctions avec le même nom mais des paramètres différents, et appelle la fonction la plus appropriée en fonction de la correspondance des paramètres. Réécriture de fonctions : autorisez les sous-classes à définir des fonctions avec le même nom et à remplacer les méthodes de la classe parent. Lorsque la méthode de la sous-classe est appelée, la méthode de la classe parent sera écrasée.

Comment implémenter la surcharge de fonctions dans Golang ? Comment implémenter la surcharge de fonctions dans Golang ? Apr 29, 2024 pm 05:21 PM

Le langage Go ne prend pas en charge la surcharge de fonctions traditionnelle, mais des effets similaires peuvent être obtenus grâce aux méthodes suivantes : en utilisant des fonctions nommées : création de noms uniques pour les fonctions avec différents paramètres ou types de retour en utilisant des génériques (Go1.18 et supérieur) : création de noms uniques ; pour différents types de paramètres Une seule version de la fonction.

Comment gérer les appels ambigus dans la surcharge de fonctions C++ ? Comment gérer les appels ambigus dans la surcharge de fonctions C++ ? Apr 13, 2024 pm 09:18 PM

Des appels ambigus se produisent lorsque le compilateur ne peut pas déterminer quelle fonction surchargée appeler. Les solutions incluent la fourniture à chaque fonction surchargée d'une signature de fonction unique (types et numéros de paramètres). Utilisez des conversions de types explicites pour forcer l’appel de la fonction correcte si les types de paramètres d’une fonction surchargée sont plus adaptés aux paramètres d’un appel donné. Si le compilateur ne parvient pas à résoudre un appel ambigu, un message d'erreur sera généré et la surcharge de fonction devra être revérifiée et modifiée.

Meilleures pratiques pour la surcharge de fonctions C++ Meilleures pratiques pour la surcharge de fonctions C++ Apr 20, 2024 am 10:48 AM

Meilleures pratiques pour la surcharge de fonctions C++ : 1. Utilisez des noms clairs et significatifs ; 2. Évitez trop de surcharges 3. Tenez compte des paramètres par défaut 4. Gardez l'ordre des paramètres cohérent ;

Pourquoi n'y a-t-il pas de surcharge de fonctions dans Golang ? Pourquoi n'y a-t-il pas de surcharge de fonctions dans Golang ? Apr 30, 2024 am 10:54 AM

La surcharge de fonctions n'est pas autorisée dans le langage Go pour les raisons suivantes : Simplifier l'implémentation du compilateur Améliorer la lisibilité du code et éviter les conflits de noms Dans Go, vous pouvez utiliser des listes de paramètres variables ou des interfaces pour obtenir un comportement similaire à la surcharge de fonctions.

Comment le compilateur différencie-t-il les paramètres ayant le même style mais des types différents dans le mécanisme de surcharge de fonctions de Java ? Comment le compilateur différencie-t-il les paramètres ayant le même style mais des types différents dans le mécanisme de surcharge de fonctions de Java ? Apr 25, 2024 am 10:03 AM

La façon dont le compilateur différencie les fonctions surchargées : par leur signature, qui est le type de chaque paramètre de fonction. Même si le nom de la fonction et le nombre de paramètres sont identiques, le compilateur peut les distinguer tant que les types de paramètres sont différents.

Quelles sont les règles de correspondance pour la surcharge des fonctions C++ ? Quelles sont les règles de correspondance pour la surcharge des fonctions C++ ? Apr 27, 2024 am 08:27 AM

Les règles de correspondance de surcharge de fonctions C++ sont les suivantes : faire correspondre le nombre et le type de paramètres dans l'appel. L'ordre des paramètres doit être cohérent. Les modificateurs de constance et de référence doivent correspondre. Les paramètres par défaut peuvent être utilisés.

See all articles