编程语言
首页 > 编程语言> > javascript – 什么是“var cc = cc = cc || {};“在Cocos2D中行吗?

javascript – 什么是“var cc = cc = cc || {};“在Cocos2D中行吗?

作者:互联网

我试图找到使用这行代码的原因

var cc = cc = cc || {};

在Cocos2D JavaScript库中,例如在this的地方,但我找不到任何合理的理由.在设置方面单一分配一个默认值就可以了但是双重赋值?谁知道原因?

解决方法:

这个一直让我烦恼,所以我有一个游戏并做了一些测试,这是我的发现.

我将展示两个不同的脚本,产生两个不同的结果,从而解释为什么有人可能会使用另一个.然而,使用其中任何一个的原因都归结为编码器,并且将基于他们想要发生的效果.

请注意,例如,我将使用实际值而不是空对象.

通常,您可能希望看到以下示例正在使用中:

var cc = cc || 1;

这将创建一个名为cc的新变量,并给出现有(在同一范围内)变量的值,或者默认值为1.此方法不会更改原始变量,但在实践中它似乎会产生影响由于它具有相同的名称,因此您无法随后引用原件,因此已更改.

这可以通过使用不同的变量名来测试,例如:

var aa;
alert(aa);
var cc = aa || 1;
alert(aa);
alert(cc);

(Example)
在这里你可以看到aa永远不会改变.

接下来我们来看看有问题的代码:

var cc = cc = cc || 1;

这实际上会改变原始变量并创建一个新的本地变量.同样,当变量具有相同名称时,不容易看到效果.但是,如果我们进行与上面相同的名称更改,我们可以看到真正的效果:

var aa;
alert(aa);
var cc = aa = aa || 1;
alert(aa);
alert(cc);

(Example)
这次我们可以看到aa确实发生了变化.

总之,你可能永远不会看到使用一个相对于另一个(使用相同的变量名称)的任何效果,但我很好奇如果可以在分配之前在某处引用原始文件时会发生什么影响,因此选择使用哪个实际上会产生影响.我会看看我是否能找到一些能够在行动中展示这一点的东西.

标签:javascript,cocos2d-iphone
来源: https://codeday.me/bug/20190629/1328400.html