问答详情
源自:2-6 果实绘制(果实数量控制)

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

http://img.mukewang.com/576bec3400010e1f12520815.jpg

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

提问者:java家洼 2016-06-23 22:04

个回答

  • qq_上好佳_0
    2016-06-24 00:40:46
    已采纳

    这是变量提升吧,相当于

    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

         

  • java家洼
    2016-06-24 06:34:43

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

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