A quoi correspond this ?

DarkCid Messages postés 195 Date d'inscription mardi 22 février 2005 Statut Membre Dernière intervention 26 octobre 2009 - 11 sept. 2007 à 10:40
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 - 11 sept. 2007 à 17:08
Salut,

j'ai récupéré un bout de code que je dois adapter à mes besoins et pour cela, il faudra que je sache à un moment ce que vaut "this" pour le remplacer par sa vrai valeur, y a une méthode pour le savoir ?

7 réponses

XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
11 sept. 2007 à 10:45
Tu peux être plus clair ? Un bout de code serait le bienvenue. ^^
0
DarkCid Messages postés 195 Date d'inscription mardi 22 février 2005 Statut Membre Dernière intervention 26 octobre 2009 1
11 sept. 2007 à 10:47
ben a un moment, dans le code, on utilise this pour faire plus court, or moi je dois appeler ce code d'une autre façon, et du coup le this ben y vaut plus la même chose, logique non ? Donc il faudrait que je sache ce qu'il remplace à l'origine.

voilà le code :

Example.GridWindow = Ext.extend(Ext.app.Module, {
    init : function(){
        this.launcher = {
            text: 'Grid Window',
            iconCls:'icon-grid',
            handler : this.createWindow,
            scope: this
        }
    },


 


    createWindow : function(){
        //alert(this);
  var desktop = this.app.getDesktop();

j'ai pas mis la suite, je pense pas que se soit indispensable.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
11 sept. 2007 à 12:14
bonjour,

>>on utilise this pour faire plus court
    pas seulement,
    c'est
plutôt
très souvent utilisé pour éviter de citer "en dur" les élements,
       pour que ce soit indépendant de l'appel justement.

>>je dois appeler ce code d'une autre façon,
>>et du coup le this ben y vaut plus la même chose, logique non ?
    euh ? ben non.
    this c'est l'objet sur lequel on est.
         function msg(z)
         { alert(z.value);   }
       
            va afficher le value de l'input
             on pourrait faire onclick="msg(document.getElementById('t1'));"
             mais avec this, on change l'id et ça reste valable.
             c'est un exemple un peu niais.
            
        et dans une fonction... c'est la fonction.
            function Base()
            {    this.p1="exemple";    }
            Base.prototype.Fnct = function ()
            {    alert(this.p1);    }
             var f1=new Base();


      
    pas compris la question, le but recherché... donc

<hr />
Cordialement                Bul         [mon Site]     [M'écrire]<hr />En général, c'est absurde de généraliser.
0
DarkCid Messages postés 195 Date d'inscription mardi 22 février 2005 Statut Membre Dernière intervention 26 octobre 2009 1
11 sept. 2007 à 12:35
ben mon problème, c'est que comme je dois faire appelle à ce bout de code d'un autre endroit, le this ne désigne plus la meme chose, et donc fait tout planter. donc il me faudrait savoir dans le code d'origine ce que remplace exactement this pour savoir comment adapter le code.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
11 sept. 2007 à 13:22
le this, sur ce que tu nous montres, c'est la function.

par quoi voudrais-tu remplacer ? ce n'est pas possible.

tu peux l'appeler de n'import où ( pas n'importe comment ! ) : ça ne doit pas planter.
<hr />



Cordialement                Bul         [mon Site]     [M'écrire]<hr />
En général, c'est absurde de généraliser.
0
DarkCid Messages postés 195 Date d'inscription mardi 22 février 2005 Statut Membre Dernière intervention 26 octobre 2009 1
11 sept. 2007 à 13:26
c'est pas faut, pourtant, sa plante.

faut dire que j'utilise Ext et j'ai pas encore bien tout compris
0
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
11 sept. 2007 à 17:08
Je en connais pas Ext mais si c'est la même chose que  Prototype, il ne faut pas utiliser this mais directement l'objet.
Par exemple :

var mesInput = $A(document.getElementsByTagName('input'));
mesInput.each(function(input){
    input.onclick = function(){
       executer_fonction( this );
    }
});

Ca c'est faut, il faut lui passer directement l'objet en parametre :

var mesInput = $A(document.getElementsByTagName('input'));

mesInput.each(function(input){

    input.onclick = function(){

       executer_fonction(input);

    }

});

Je pense que ton problème doit être similaire.
0
Rejoignez-nous