这里为什么把this赋给变量?
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);
}
有什么好处吗?直接用不可以吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
一般来说这种情况可能是因为在后面某些不属于当前环境的函数(如点击事件)里面调用this,至于把this保存成临时变量有没有性能优化的效果我不太清楚
如:
img.onload = function () {
}
作用域的问题! me=this 代表当前this的指向 , 如果下面在写this,可能又指向不通的对象,me可以作为一个变量接收 本次出现的this 可以在其他函数能使用,如果继续使用this ,而这个this可能指向其他对象,或者未定义!建议可以去看看this指向,作用域这些!
O(∩_∩)O哈哈~ 我也是小白一枚 如有错误 请见谅
首先你这段代码是从一个大对象里截取的一段,由于你没给这个大对象,我来假设一个
var animit={
这时进入了对象的draw_anim的方法里,此时将this赋给了变量me,在这个方法里的下面的me就代表这个大对象animit。这样做是为了避免在draw_anim这个方法里出现div.onclick等事件或定时器事件里的this弄混,也就是说此时你在div.onclick操作的function里面输出this,指的是就是div,而不是大对象animit。
这个是变量访问控制的问题,这个可以看一下基础的知识