JavaScript只能内联工作
此冲突代码(逐字引用自Mozilla)适用于: 什么都不会发生,尽管代码在函数外部/内联编写时仍能工作 如果我通过稍微移动括号来更改函数调用,如下图所示,那么它将不断被调用为true(rect1在x轴上不断移动100像素,尽管事实上rect1和rect2实际上没有冲突,所以我只能假设函数不是这样写的!): 它要么持续执行,要么根本不执行,这取决于括号的位置,这一点令人困惑(我正在学习语法)。当冲突代码不是作为被调用的函数编写时,它工作得很好,这一事实加剧了这种混淆JavaScript只能内联工作,javascript,Javascript,此冲突代码(逐字引用自Mozilla)适用于: 什么都不会发生,尽管代码在函数外部/内联编写时仍能工作 如果我通过稍微移动括号来更改函数调用,如下图所示,那么它将不断被调用为true(rect1在x轴上不断移动100像素,尽管事实上rect1和rect2实际上没有冲突,所以我只能假设函数不是这样写的!): 它要么持续执行,要么根本不执行,这取决于括号的位置,这一点令人困惑(我正在学习语法)。当冲突代码不是作为被调用的函数编写时,它工作得很好,这一事实加剧了这种混淆 那么,我的问题是关于编写函数的
那么,我的问题是关于编写函数的正确JavaScript语法。我似乎写错了(代码在函数中可以正常工作),任何澄清都值得赞赏。代码似乎有语法错误(或错误),不会导致任何事情发生。下面是有问题的代码:
rect1.x + 100;
它的计算结果是102
,但实际上什么都不做。我猜您希望通过100
增加rect1.x
,这将通过以下方式完成:
rect1.x += 100;
这个小错误是您看到的其余问题的原因。也就是说,rect1.x+100
仅计算为102
,但不会改变任何内容。代码必须更改为rect1.x+=100
,以便rect1
更新rect1.x
完成此修复后,我们可以添加一些控制台日志以查看发生了什么:
函数Mozillas冲突(object1,object2){
if(object1.xobject2.x&&
object1.yobject2.y){
//碰撞检测!
//做点什么,像这样。。。
rect1.x+=100;
log(rect1,‘mozillas函数内部’);
}
}
常数rect1={
x:2,
y:2,
身高:2,
宽度:2
}
常数rect2={
x:5,
y:5,
身高:2,
宽度:2
}
常数rect3={
x:3,
y:3,
身高:2,
宽度:2
}
Mozillas碰撞(rect1,rect2);
Mozillas碰撞(rect1,rect3);
log(rect1,“在mozillaCollides函数之外”)
代码似乎有语法错误(或错误),不会导致任何事情发生。下面是有问题的代码:
rect1.x + 100;
它的计算结果是102
,但实际上什么都不做。我猜您希望通过100
增加rect1.x
,这将通过以下方式完成:
rect1.x += 100;
这个小错误是您看到的其余问题的原因。也就是说,rect1.x+100
仅计算为102
,但不会改变任何内容。代码必须更改为rect1.x+=100
,以便rect1
更新rect1.x
完成此修复后,我们可以添加一些控制台日志以查看发生了什么:
函数Mozillas冲突(object1,object2){
if(object1.xobject2.x&&
object1.yobject2.y){
//碰撞检测!
//做点什么,像这样。。。
rect1.x+=100;
log(rect1,‘mozillas函数内部’);
}
}
常数rect1={
x:2,
y:2,
身高:2,
宽度:2
}
常数rect2={
x:5,
y:5,
身高:2,
宽度:2
}
常数rect3={
x:3,
y:3,
身高:2,
宽度:2
}
Mozillas碰撞(rect1,rect2);
Mozillas碰撞(rect1,rect3);
log(rect1,‘在mozillaCollides函数之外’)
我可以告诉您这两个比较是一致的。也许如果您提供一些示例对象,我们可以更容易地提供帮助。我无法使原始代码正常工作。你可能会对这个问题感兴趣:下面的解决方案解决了你的问题吗?我可以告诉你这两个比较。也许如果您提供一些示例对象,我们可以更容易地提供帮助。我无法使原始代码正常工作。您可能对以下问题感兴趣:下面的解决方案是否解决了您的问题?
rect1.x + 100;
rect1.x += 100;