recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Pourquoi est-ce attribué à une variable ici?

draw_anim:function(context){
                var me=this;
                var width = me.canvas.width,height = me.canvas.height;    
                
                    
                var img = new Image();
                img.src = this.imgsrcList[me.current];
                img.onload = function () { 
                        context.clearRect(0,0,width,height);
                        context.drawImage(img, 0, 0,img.width, img.height);
                }

Y a-t-il des avantages ? Ne peut-il pas être utilisé directement ?

过去多啦不再A梦过去多啦不再A梦2867 Il y a quelques jours531

répondre à tous(3)je répondrai

  • 大家讲道理

    大家讲道理2017-05-18 10:50:59

    D'une manière générale, cette situation peut être due au fait que ceci est appelé dans certaines fonctions ultérieures qui n'appartiennent pas à l'environnement actuel (comme les événements de clic). Quant à l'enregistrement en tant que variable temporaire, je ne suis pas sûr qu'il existe une optimisation des performances. effet

    Par exemple :
    img.onload = function () {

        context.clearRect(0,0,width,height);
        context.drawImage(img, 0, 0,img.width, img.height);
        //你这里想调用上面的this的话就需要用到me,因为这里的this指向的是img

    }

    répondre
    0
  • phpcn_u1582

    phpcn_u15822017-05-18 10:50:59

    Problème de portée ! me=this représente le point actuel de this. Si this est écrit ci-dessous, il peut pointer vers un objet différent. me peut être utilisé comme variable pour recevoir ceci qui apparaît cette fois et peut être utilisé dans d'autres fonctions. utilisez ceci, cela peut pointer vers d'autres objets, ou non définis ! Il est recommandé de jeter un œil à ce pointeur et à cette portée !

    répondre
    0
  • 習慣沉默

    習慣沉默2017-05-18 10:50:59

    O(∩_∩)O haha~ Je suis aussi un débutant, pardonnez-moi s'il y a des erreurs
    Tout d'abord, votre code est une section interceptée d'un gros objet Puisque vous n'avez pas donné ce gros objet, laissez-le. je fais une hypothèse
    var animit={

    draw_anim:function(context){
                var me=this;
                var width = me.canvas.width,height = me.canvas.height;    
                
                    
                var img = new Image();
                img.src = this.imgsrcList[me.current];
                img.onload = function () { 
                        context.clearRect(0,0,width,height);
                        context.drawImage(img, 0, 0,img.width, img.height);
                }

    A ce moment, vous entrez la méthode draw_anim de l'objet. A ce moment, celle-ci est affectée à la variable me ci-dessous dans cette méthode représente le gros objet animit. Ceci est fait pour éviter toute confusion avec cela dans des événements tels que p.onclick ou des événements timer dans la méthode draw_anim, c'est-à-dire que lorsque vous affichez ceci dans la fonction de l'opération p.onclick, il fait référence à p, et pas à un grand. objet animé.

    répondre
    0
  • Annulerrépondre