javascript中无法理解的对象重新分配

G程序

我一直在看这个游戏引擎的示例,但我真的不明白为什么它会重新分配对象,我用Java编写代码并且正在学习JavaScript,这可能是概念错误。

示例https://blacksmith2d.io/Docs/Examples/Arcade-Physics/CollisionEvents

onassetsLoaded()事件,他正在设置对象属性,然后在下面重新分配它。

this.arcade = arcade;
this.circle = circle;
this.box = box;

我也不能理解if语句的这一部分

!this.circle 
亭子

关于这些语句:

this.arcade = arcade;
this.circle = circle;
this.box = box;

在该代码块的前面,所有出现在右侧的变量都被定义为局部变量(对方法局部onAssetsLoaded):

const arcade = ...
const circle = ...
const box = ...

因此,您想知道的分配实际上是将引用从局部变量复制到实例变量(即属性)。onAssetsLoaded通话完成后,需要这样做以免丢失此信息

关于这个表达式:

!this.circle 

非运算符(!)可用于任何表达式。它计算true操作数何时为“ falsy”。在JavaScript中值喜欢undefinednull0""NaN,被认为是“falsy”,而所有对象被认为是“truthy”。在这里,它用于检测this.circle尚未分配适当的值,即,这意味着onAssetsLoaded尚未调用,并且this.circle仍为undefined

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章