1
votes

Placer un gros bloc de code en dehors de l'instruction «if» dans une fonction?

$('#dgInput').on('keypress', function(e) {
    if (e.keyCode == 13) {
    // here is a huge code block
}
To improve readability I need to place the code outside of if statement.  I tried -  $('#dgInput').on('keypress', function(e.keyCode = 13) { - doesn't work  Also - if (e.keyCode == 13) {continue;} - doesn't work.  Is there a way?

3 commentaires

Pouvez-vous fournir plus d'informations?


Si vous souhaitez améliorer la lisibilité, vous pouvez diviser votre code en sections ou simplement vous assurer que votre indentation est conforme aux normes?


quelle est la fonction? Est-il réutilisable (peut simplement créer une fonction et l'appeler dans le conditionnel e.keyCode)


3 Réponses :


4
votes

Vous pouvez déclarer une fonction et l'utiliser à l'intérieur.

function handleOnEnterPress(e){
 if (e.keyCode == 13) {
   // here is a huge code block
 }
}


$('#dgInput').on('keypress', function(e) {
  handleOnEnterPress(e);
}

OU

function doSomeMagic(){
  // Do some magic here
}


$('#dgInput').on('keypress', function(e) {
  if (e.keyCode == 13) {
    // here is a huge code block
    doSomeMagic();
  }
}


2 commentaires

création d'une nouvelle fonction pour améliorer la lisibilité - disons - une solution de périphérie


Oui si vous voulez plus de readibity == >> fonction de nom comme onEnterPress et passez e comme parms et faites e.keyCode == 13 vous enregistrer fonctionner lui-même



4
votes

Si vous voulez quitter une fonction, utilisez return , pas continue.

if (e.keyCode == 13) {
    do_the_thing(e);
}
// Do more things

Si vous voulez simplement déplacer un grand bloc de code (c'est-à-dire si vous voulez faire des choses après la condition if ), placez-le dans une fonction et appelez cette fonction à partir de votre condition.

if (e.keyCode != 13) {
    return;
}
// Large block of code now goes here


0 commentaires

0
votes

Vous pouvez refactoriser le bloc de code existant en une fonction:

if (e.keyCode == 13) {
    // Do some initial work here
    let result = doStuff(param1, param2);
    doStuff2(result);
    doStuff3();
    // Do something with the result here
}

La fonction doStuff peut être appelée à partir du code d'origine:

$('#dgInput').on('keypress', function(e) {
                                 if (e.keyCode == 13) {
                                      // Do some initial work here
                                      let result = doStuff(param1, param2);
                                      // May be, do something with the result here
                                 }
}

Si la fonction doStuff est vraiment volumineuse, elle peut être davantage refactorisée en plusieurs fonctions gérables - doStuff appelle doThis code >, etc. En général, une fonction avec 5 à 10 lignes de code, de préférence avec des fonctionnalités associées (par exemple, une fonction de calcul de la taxe accepte certains paramètres comme le montant, le taux, la remise et renvoie ensuite la valeur de la taxe), la rend lisible et donc maintenable.

Il y a pas mal d'informations sur la refactorisation du code. Il s'applique à toutes les langues, en général. Un peu de recherche sur le net peut également vous aider avec des idées que vous pourriez trouver utiles.

EDIT:

Notez qu'il n'y a pas de règle selon laquelle il devrait y avoir une fonction (comme, doStuff) dans le bloc if . On peut appeler plusieurs fonctions, comme celle-ci dans le bloc (et parfois ces fonctions peuvent être réutilisables).

function doStuff(param1, param2){
  // Work with the paramters here
  // Do some other things
  // May be, return a value
}


0 commentaires