Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript只能内联工作_Javascript - Fatal编程技术网

JavaScript只能内联工作

JavaScript只能内联工作,javascript,Javascript,此冲突代码(逐字引用自Mozilla)适用于: 什么都不会发生,尽管代码在函数外部/内联编写时仍能工作 如果我通过稍微移动括号来更改函数调用,如下图所示,那么它将不断被调用为true(rect1在x轴上不断移动100像素,尽管事实上rect1和rect2实际上没有冲突,所以我只能假设函数不是这样写的!): 它要么持续执行,要么根本不执行,这取决于括号的位置,这一点令人困惑(我正在学习语法)。当冲突代码不是作为被调用的函数编写时,它工作得很好,这一事实加剧了这种混淆 那么,我的问题是关于编写函数的

此冲突代码(逐字引用自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;