繁体   English   中英

JavaScript变量吊装使用不正确?

[英]Incorrect use of Javascript Variable Hoisting?

问题

因此,我尝试在定义变量之前在Javascript中使用变量。 由于Javascript吊装( http://www.w3schools.com/js/js_hoisting.asp ),我认为这可以。 但是,尝试使用此技术时,出现“ engine.level.tileSize”的未定义错误。 我想知道这是由于它是对象的一部分...还是因为它不是显式的一部分?

编码

(为方便起见,以下是带有完整工作代码的Codepen- http ://codepen.io/anon/pen/QjKaVG-注意:虽然该代码在本地完全工作,但由于缺少图像资源而无法在Codepen上工作。)

上面的代码是我的工作版本。 但是,当我尝试将几行更改为以下几行时,问题变得很明显。

// -------------------------------------------------------------------------------
// VIEWPORT CLASS
// -------------------------------------------------------------------------------
engine.viewport        = {};
engine.viewport.width  = 15 * engine.level.tileSize;
engine.viewport.height = 8 * engine.level.tileSize;

// -------------------------------------------------------------------------------
// LEVEL CLASS
// -------------------------------------------------------------------------------
engine.level = {};
engine.level.tileSize = 32;

任何人都可以阐明这里发生的事情以及如何解决这个问题吗?

非常感谢。

提升仅声明变量和函数。

在该对象存在之前,您不能引用该对象(并访问其属性的值)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM