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

TypeScript Discussion :

Utilisation du mot prototype pour appeler une function/method


Sujet :

TypeScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 130
    Points : 91
    Points
    91
    Par défaut Utilisation du mot prototype pour appeler une function/method
    Bonjour,

    je me mets à typescript en parallèle de Phaser.io.

    je suis actuellement un des tutos (http://www.gamefromscratch.com/post/...ard-Input.aspx) et il y a un passage que je ne comprends pas bien (2nd partie du tuto):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class SimpleGame {
        constructor() {
            this.game = new Phaser.Game(640, 480, Phaser.AUTO, 'content', {
                create: this.create});}
        moveUp(e: KeyboardEvent) {
                this.jetSprite.position.add(0, -1);
        }
        create() {
            this.W.onDown.add(SimpleGame.prototype.moveUp, this);
        }
    }
    Je ne comprends pas pourquoi on utilise SimpleGame.prototype.moveUp pour appeler cette fonction ? est-ce à cause du this ?

    De ce que j'ai compris, par défaut les fonctions déclarées sont des prototypes de classe (JS) et non pas des méthodes d'instance... ? Pour autant il arrive qu'on appelle des fonctions sans ce mot prototype... mais ici ça ne fonctionne pas.

    D'avance merci,

    Mand.

  2. #2
    Membre chevronné

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2009
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2009
    Messages : 966
    Points : 2 078
    Points
    2 078
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.W.onDown.add(SimpleGame.prototype.moveUp, this);
    de se que j'ai compris (mais je me trompe peut être).

    Dans se cas, on cherche a affecter la fonction moveUp et non pas a retourner le résultat de la fonction.

    de plus la fonction moveup n'est pas static.
    du coup ceci n'es pas valable : this.W.onDown.add(SimpleGame.moveUp(), this);


    Un code équivalent serrai peut être celui ci. (a valider)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.W.onDown.add((e: KeyboardEvent) => { this.jetSprite.position.add(0, -1); }, this);
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.W.onDown.add(() => { this.moveUp(); }, this);
    mais je ne connais pas le framework donc je ne donnerai pas ma mains a couper.

    Merci de me confirmer si c'est ok.
    un jour, quelqu'un a dit quelque chose...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 130
    Points : 91
    Points
    91
    Par défaut
    Merci en effet, j'avais oublié le this dans mon test.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/09/2014, 10h36
  2. Utiliser une variable pour appeler une routine ?
    Par black bulldog dans le forum Langage
    Réponses: 7
    Dernier message: 14/09/2014, 04h30
  3. Réponses: 1
    Dernier message: 20/06/2012, 14h07
  4. utiliser CallWindowProc pour appeler une fonction
    Par cbleas dans le forum VBA Access
    Réponses: 7
    Dernier message: 09/03/2009, 07h17
  5. Utiliser une touche pour appeller une fonction
    Par Hide dans le forum Langage
    Réponses: 2
    Dernier message: 13/10/2005, 16h59

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