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

this.x[i]在init中是如何传到draw中的啊

http://img1.sycdn.imooc.com//59bbe47c0001483105030462.jpg

不是在函数内部吗  怎么可以传出来呢 

正在回答

2 回答

init中的 

this.x[i]  代表 aneObj.x[i],  this其实就是指 aneObj, 而aneObj相对于 init 和draw 是外部的变量,所以他们都能访问的到 aneObj


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

无法传递,导致海葵出不来,后来干脆

//定义一个海葵对象的类
var aneObj = function()
{
};
//定义海葵的宽、高属性
var x = [];
var y = [];
//定义海葵个数
aneObj.prototype.num = 50;
//初始化确定每一个海葵的位置
aneObj.prototype.init = function()
{
    for(var i = 0; i < this.num; i++) {
        //宽
        x[i] = i * 20 + Math.random() * 20;//Math.random()随机[0,1]
        //高
        y[i] = 200 + Math.random() * 50;
    }
    console.log(x[i]);

};
//绘制海葵
aneObj.prototype.draw = function()
{
    //指定api区间样式生效
    ctx2.save();
    ctx2.globalAlpha = 0.6;
    ctx2.lineWidth = '20';
    ctx2.lineCap = 'round';
    ctx2.strokeStyle = '#3b154e';
    for(var i = 0; i < this.num; i++) {
        //beginPath,moveTo,lineTo,strokeStyle,stroke,lineWidth,lineCap,globalAlpha
        ctx2.beginPath();
        ctx2.moveTo(x[i],canHeight);
        ctx2.lineTo(x[i],canHeight - y[i]);
        ctx2.stroke();
    }
    ctx2.restore();
};


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

举报

0/150
提交
取消

this.x[i]在init中是如何传到draw中的啊

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