Maison  >  Article  >  interface Web  >  Principe de mise en œuvre des paramètres de fonction en js

Principe de mise en œuvre des paramètres de fonction en js

不言
不言original
2018-07-16 14:58:431804parcourir

L'implémentation des paramètres formels et des paramètres réels des fonctions dans js est différente. Lors du passage des paramètres, il arrive parfois que les paramètres réels ne correspondent pas aux paramètres formels. Alors, comment peuvent-ils correspondre ? C'est là que nous devons étudier les principes d'implémentation des paramètres en js.

Nous savons tous que les paramètres peuvent être transmis différemment dans JS. Par exemple, nous avons une fonction :

<script type="text/javascript">
    function one(a,b,c) {        
    this.x = a;
        console.log(a);
    }
    one(1);</script>

Le nombre que nous transmettons n'est que 1, mais le paramètre formel a abc trois. individuel. Ce n’est évidemment pas correct, n’est-ce pas ?

Si nous regardons b et c à ce moment, undéfini sera affiché. ps : par exemple, console.log(b).

Bien sûr, ces deux numéros n'existaient pas. Comment puis-je le trouver pour vous ?

Alors, comment JS implémente-t-il cette situation lorsque les paramètres réels et les paramètres formels ne correspondent pas ? Regardons un morceau de code :

<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><title>JavaScript中函数的形参和实参的区别</title></head><body>
    <script type="text/javascript">
    function one(a,b,c) {        
    return one.length;
    }    function two(a,b,c,d,e,f,g){        
    return arguments.length;
    }
    console.log(one()); //3    
    console.log(two()); //0
    </script></body></html>

Ici, nous renvoyons one.length dans la fonction one et arguments.length dans les deux fonctions. Vous avez peut-être découvert que la sortie one() renvoie one.length qui est le nombre de paramètres formels et argument.length est le nombre de paramètres réels.


L'avez-vous compris instantanément ?

Même nous pouvons utiliser des arguments[0] pour obtenir le numéro du paramètre réel.

Mais pourquoi les nombres sans paramètres formels peuvent-ils être représentés sous la forme d'un tableau ? Eh bien, je sais que vous êtes une Vierge et que vous exigez la symétrie en tout. Sauf si votre paramètre formel est un tableau, vous pouvez l'utiliser de cette façon. Sinon, dans la fonction, on ne peut utiliser que le nom du paramètre formel pour obtenir les paramètres réels.

En C# et Java, les exigences relatives au type et au numéro de paramètre sont très strictes par rapport à JS. S'ils ne correspondent pas du tout, une erreur sera signalée. Et JS peut devenir un langage relativement flexible grâce à cette conception.

La méthode ci-dessus est une implémentation sur laquelle JS s'appuie sans forcer le nombre de paramètres formels et de paramètres réels à être égaux. Quant au même type, n'importe quel type en JS peut être écrit comme var a =..., à quoi servent les types ? C’est pourquoi on dit que JS est un langage faiblement typé !

Recommandations associées :

Compréhension des paramètres réels, des paramètres formels et des fermetures des fonctions js

Analyse de la déclaration de fonction et de l'expression de fonction de js

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!

Déclaration:
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