在JavaScript里真的随便用局部变量吗?
这是变量提升吧,相当于
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
因为JavaScript是函数级作用域(function-level scope)
if语句,并不会创建一个新的作用域。只有函数才会创建新的作用域。
详细解读:http://www.jb51.net/article/30719.htm