JavaScript动态图

JavaScript动态图,javascript,jquery,web-applications,raphael,jointjs,Javascript,Jquery,Web Applications,Raphael,Jointjs,快速提问,我对JavaScript非常陌生,毫无疑问,我将从这个项目中学到很多东西。所以我提出一个问题(很可能是个愚蠢的问题),我的问题是: 我计划构建一个web应用程序,它可以从Raphael或Joint.js中动态生成形状,这两种形状都非常相似,所谓动态,我的意思是,在用户输入之前,将有大量未定义的对象需要绘制,例如,他们希望绘制的对象数量-因此,下面的一些代码可以强化我的问题: var erd = Joint.dia.erd; Joint.paper("world", 800, 250);

快速提问,我对JavaScript非常陌生,毫无疑问,我将从这个项目中学到很多东西。所以我提出一个问题(很可能是个愚蠢的问题),我的问题是:

我计划构建一个web应用程序,它可以从Raphael或Joint.js中动态生成形状,这两种形状都非常相似,所谓动态,我的意思是,在用户输入之前,将有大量未定义的对象需要绘制,例如,他们希望绘制的对象数量-因此,下面的一些代码可以强化我的问题:

var erd = Joint.dia.erd;
Joint.paper("world", 800, 250);

var e1 = erd.Entity.create({
    rect: {
        x: 220,
        y: 70,
        width: 100,
        height: 60
    },
    label: "Entity"
});
因此,我创建了一个矩形类型的对象,但我想知道的是——我可以这样做吗:

var erd = Joint.dia.erd;
Joint.paper("world", 800, 250);
int x, y;
for (int i = 0; i < numOfUserDefObjects; i++) {
    var e1 = erd.Entity.create({
        rect: {
            x: x,
            y: y,
            width: 100,
            height: 60
        },
        label: "Entity"
        x + 20;
        y - 40;
    });
}
var-erd=接头直径erd;
联合文件(“世界”,800250);
int x,y;
for(int i=0;i
让我困惑的是,
vare1
。如果有两个对象要创建,那么当循环第二次遍历循环/创建第二个对象时,是否会从我的SVG/画布中擦除/删除/覆盖在循环中创建的第一个对象

对此有一点见解将不胜感激!同样,缺乏JavaScript经验,但这会有所改变


再次感谢。

在javascript中,用
var
声明的局部变量具有函数作用域。这意味着每个函数只有一个局部变量的副本。因此,在第二个代码块中,变量
e1
只有一个副本,而
for
循环在每次迭代中为其分配不同的值

您可以执行您正在执行的操作,但是完成后,
e1
中只有一个值,并且该值将是
for
循环的最后一次迭代分配给它的值

我不知道您想要完成什么,但您可以创建一个对象数组,如下所示:

var erd = Joint.dia.erd;
Joint.paper("world", 800, 250);
var x = 0, y = 0;
var objs = [];
for (var i = 0; i < numOfUserDefObjects; i++) {
    objs.push(erd.Entity.create({
        rect: {
            x: x,
            y: y,
            width: 100,
            height: 60
        },
        label: "Entity"
    }));
    x += 20;
    y -= 40;
}
// objs now contains an array of the created objects
var-erd=接头直径erd;
联合文件(“世界”,800250);
变量x=0,y=0;
var objs=[];
对于(var i=0;i


注意:我还初始化了x和y,修复了使用
var
而不是
int
的声明,并在
for
循环中正确地递增和递减x和y。您发布的代码中有很多语法错误。

啊,是的,我在构建应用程序时会遇到这些错误。现在,我正在计划我的方法,我想先发制人地问这个问题,以便在不久的将来不会绊倒我,但感谢您提供了清晰简洁的答案。