![](/img/trans.png)
[英]How to use variable hoisting with function expression in 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.