Javascript : "with"

Lobb88 Messages postés 12 Date d'inscription lundi 30 mars 2009 Statut Membre Dernière intervention 8 avril 2011 - 5 mai 2009 à 22:02
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 13 mai 2009 à 19:50
Bonjour, je voudrais savoir dans cette fonction a quoi sert le "with" exactement s'il vous plait. Merci beaucoup.

function ClassObjet(monObjet)
    {
        var classDivDeplacable = "DivDeplacable";
        with(monObjet)
        {
            var i;
            listeClass = className.split(" ");
            //On parcours le tableau pour voir si l'objet est déplaçable
            for(i=0 ; i <= listeClass.length ; i++)
            {
                if(listeClass[i] == classDivDeplacable)
                {
                    objetDown = monObjet;
                }
            }
        }
    }

4 réponses

Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
6 mai 2009 à 09:33
Bonjour le mot clef with sert à alléger le code :
Par exemple :
plutôt que d'écrire:

   monObjet.style.top = "10px";
   monObjet.style.left = "20px";

on peut écrire:
with (monObjet.style){
   top = "10px";
   left= "20px";
}

Mais dans le cas de la fonction fournie, il n'a que fort peut d'intérêt, elle aurait pu s'écrire:
function ClassObjet(monObjet)
    {
        var classDivDeplacable = "DivDeplacable";
            var i;
            listeClass = monObjet .className.split(" ");
            //On parcours le tableau pour voir si l'objet est déplaçable
            for(i =0 ; i <= listeClass.length ; i++)
            {
                if(listeClass[i] == classDivDeplacable)
                {
                    objetDown = monObjet;
                }
            }
    }

[o-_-o]
0
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
6 mai 2009 à 10:04
Très bonne explication de Zobibol.
Cependant, je tiens a ajouter qu'il est a priori non recommandé d'utiliser WITH et celà pour une raison que j'ignore. Dailleur, si quelqu'un sait pourquoi ce n'est pas recommandé, je suis preneur.
0
Lobb88 Messages postés 12 Date d'inscription lundi 30 mars 2009 Statut Membre Dernière intervention 8 avril 2011
6 mai 2009 à 12:58
Merci Zobibol pour ton explication très claire. Par compte je suis preneur si quelqu'un sais pourquoi il n'est pas recommandé de l'utiliser.
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
13 mai 2009 à 19:50
Bonjour,
une amorce de réponse sur
developer.mozilla
 

;O)
0
Rejoignez-nous