javascript - Pourquoi est-ce attribué à une variable ici?
过去多啦不再A梦
过去多啦不再A梦 2017-05-18 10:48:59
0
3
515
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梦

répondre à tous(3)
大家讲道理

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

}

phpcn_u1582

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 !

習慣沉默

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é.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal