Dans le monde de JavaScript, il existe de nombreuses façons de définir des fonctions, ce qui reflète la flexibilité de JavaScript. Cependant, c'est précisément cette raison qui rend les débutants confus, en particulier pour les étudiants qui n'ont aucune base linguistique. Comme le dit le proverbe, tous les chemins mènent à Rome, mais s'il y a trop de routes, le voyageur sera désemparé car il ne sait pas quelle route est la bonne voie à suivre Haha, c'est un long article, ne le disons pas. parlons-en, regardons d'abord le code :
/*La deuxième méthode consiste à utiliser le constructeur Function() pour cloner la fonction*/
var F = new Function("a","b","alerte(a b)");
F(a,b);
est en fait équivalent au code suivant :
fonction F(a,b){
alerte(a b);
>
/*La troisième méthode consiste à utiliser des littéraux de fonction*/
var zhenn = fonction(){
alert("zhenn");
>
zhenn();
Parmi elles, les méthodes d'utilisation des « instructions de fonction » et des « littéraux de fonction » pour définir des fonctions semblent être plus courantes et plus faciles à comprendre, je n'entrerai donc pas dans les détails ici. Les fonctions de clonage utilisant le constructeur Function() sont généralement rarement utilisées car une fonction est généralement constituée de plusieurs instructions si elles sont passées en paramètres sous forme de chaînes, cela rendra inévitablement le code moins lisible.
Permettez-moi de mentionner ici le constructeur. En fait, littéralement, le constructeur semble être une fonction. En fait, ce n'est pas une fonction, mais juste un modèle de fonction. Pour donner un exemple inapproprié, le constructeur équivaut à une voiture nouvellement assemblée, qu'elle soit vue de loin ou de près, c'est toujours une voiture, mais elle n'a pas encore fait le plein (ce qui représente une étape nécessaire avant utilisation), donc il ne peut pas être démarré. Si vous voulez que cette voiture roule normalement, vous devez y ajouter de l'huile. En fait, ce procédé équivaut à l'instanciation du constructeur, sinon elle ne fonctionnera pas normalement ! Regardez cet exemple :