1

可能重复:
Javascript 循环中的事件处理程序 - 需要闭包吗?

我是动力学的新学习者。当我使用 kinetic.shape 绘制一条连续线时,我遇到了一些复杂的 javascript 闭包问题

  for(var i = 0; i < 4; i++)
  {
    var y_position = data[i];
    context.lineTo(i*x_position, y_position);
  }

在我的情况下层太多了,我已经多次更改了我的代码,但仍然无法得到我的预期结果。有人可以帮助我吗?

    for(var i = 0; i < 4; i++){ 
        var y_position = data[i];
        //document.write("<br/>"+y_position);  (it print 0 1 2 3)
        var line = new Kinetic.Shape({
            drawFunc: function() {
                var context = this.getContext();
                context.lineTo(i*x_position, y_position);
                this.stroke(context);
                //document.write("<br/>"+y_position);  (it print 3 3 3 3)
                },

                stroke: lineColor,
                strokeWidth: 1
            });
            layer.add(line);
    }
4

0 回答 0