IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Acces aux méthodes d'une Classe


Sujet :

JavaScript

  1. #1
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut Acces aux méthodes d'une Classe
    Bonsoir,

    Je crois que je suis en train de me perdre dans les méandres du Javascript, et plus ca va moins je comprends ce que je fais, donc je préfère venir ici qq instants, je suis sur que vous allez pulvériser mes doutes d'un coup de baguette magique ...
    Donc disons que j'ai un classe du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    var Classe_a_la_con=
    	Class.create({
    		initialize: function(){
    			this.property1;
     
    			this.traiteTexte= function(txt){
    				return txt.replace(/,/g, ''); /* juste pour illustrer */
    			};
     
    			this.prepTexte= function(txt){
    				this.property1= this.traiteTexte(txt);
    			};
    		}
    	});
    "prepTexte" n'a pas le droit d'appeller "traiteTexte" ?
    Le "this" ne fait pas référence a la class ?

    Merci d'avance pour vos lumières,
    @+
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Un grand classique en effet

    En fait, this ne référence pas l'objet créé (les classes n'existent pas en JavaScript, même si Prototype les émule) mais l'objet en cours.
    Or quand tu crées une méthode, tu l'englobe en fait dans une fonction anonyme qui a pour effet de faire perdre la référence au this auquel tu t'attends.
    Une méthode habituelle pour contourner ce désagrément est de passer par une variable intermédiaire (par exemple that ou me). Cette variable constitue ensuite une référence à this, c'est-à-dire qu'elle évolue en même temps et c'est cette variable qu'il faut utiliser dans les méthodes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var Classe_a_la_con=
    	Class.create({
    		initialize: function(){
    			this.property1;
    			var that = this;
    			this.traiteTexte= function(txt){
    				return txt.replace(/,/g, ''); /* juste pour illustrer */
    			};
     
    			this.prepTexte= function(txt){
    				that.property1= that.traiteTexte(txt);
    			};
    		}
    	});
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonsoir,



    Super, merci de me remettre dans le droit chemin.
    Le pire c'est que je crois être déjà passé par le coup du "that", mais dès le début de la journée tout partait de travers ( Plantage PC dès le lancement,etc ), j'ai bien vu que ca allait être difficile aujourd'hui ...

    Merci encore,
    @+
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JSTL] Accès aux méthodes d'une classe
    Par libuma dans le forum Taglibs
    Réponses: 7
    Dernier message: 07/09/2010, 09h14
  2. Réponses: 5
    Dernier message: 01/02/2007, 13h14
  3. Problème d'accès aux méthodes d'une classe
    Par RR instinct dans le forum Langage
    Réponses: 5
    Dernier message: 26/06/2006, 14h51
  4. Réponses: 38
    Dernier message: 16/02/2005, 02h03
  5. [TOMCAT] JSP problème d'accès aux méthodes d'une classes
    Par gunnm dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 22/05/2004, 14h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo