为了账号安全,请及时绑定邮箱和手机立即绑定

大家好,老师在修改draw方法的时候,根据果实的颜色类型不同绘制不同果实的时候,有个问题困扰了我很久,求高人指点迷津,如下图:

http://img1.sycdn.imooc.com//576bec3400010e1f12520815.jpg

在JavaScript里真的随便用局部变量吗?

正在回答

2 回答

这是变量提升吧,相当于

fruitObj.prototype.draw = function(){

var pic;

for(var i=0;i<this.num;i++)

{     ...

     ctx2.drawImage(pic,this.x[i]*this.l[i]*0.5,this.y[i]-this.l[i]*0.5,this.l[i],this.l[i]);

    ...

}

}

drawImage在fruitObj.prototype.draw的内部,可以访问到fruitObj.prototype.draw的局部变量,所以就可以访问到pic

     

0 回复 有任何疑惑可以回复我~
#1

java家洼 提问者

你说的点子上了,变量提升,谢谢
2016-06-24 回复 有任何疑惑可以回复我~

因为JavaScript是函数级作用域(function-level scope)

if语句,并不会创建一个新的作用域。只有函数才会创建新的作用域。
详细解读:http://www.jb51.net/article/30719.htm

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

大家好,老师在修改draw方法的时候,根据果实的颜色类型不同绘制不同果实的时候,有个问题困扰了我很久,求高人指点迷津,如下图:

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信