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?
3 Réponses :
param code> 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 code> variable. P>
Même pas ça. Tout compilateur décent devrait se débarrasser des variables mortes intermédiaires (comme param).
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. P>
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é. P>
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 p>
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.