7
votes

Paramètre VS Variable local VS

function doIt(param) {
   var localVar = param;
   //do lots of stuff with localVar
}

function doIt(param) {
   //do lots of stuff with param
}
Is there any difference in terms of efficiency between the code above? 

1 commentaires

Essayez cette simple Benchmark . Si vous trouvez une différence (je reçois des résultats intéressants sur Firefox et Opera), il sera négligeable de toute façon.


3 Réponses :


0
votes

param variable est déjà une variable locale de sorte que la seule différence entre ces deux extraits de code est que le premier crée une copie inutile de param variable.


1 commentaires

Même pas ça. Tout compilateur décent devrait se débarrasser des variables mortes intermédiaires (comme param).



8
votes

Il n'y a pas de différence. Un paramètre n'est qu'une variable locale initialisée avec l'argument transmis au moment de l'invocation.

Toutefois, si vous allez modifier la valeur de votre variable, il est souvent considéré comme une bonne pratique pour laisser des variables de paramètres non altérées, simplement pour des raisons de lisibilité et de maintenabilité.


0 commentaires

0
votes

Oui, il existe une différence très significative si votre variable de paramètre contient la valeur d'un objet. Si votre variable de paramètre contient la valeur d'un objet, puis vous modifiez vos objets de variable de paramètre n'importe où dans la fonction transcédée, alors la valeur sera modifiée partout parce que lors du passage de l'objet sous forme de paramètre de JavaScript, il est passé de transmission par référence et non par valeur.

Veuillez regarder la suite suivant le code de code pour comprendre ce que je veux dire xxx


0 commentaires