Javascript对象在创建它的函数结束后被设置为未定义
Javascript object gets set to undefined after function that creates it ends
我正在使用create.js,但是每当quequeSetup()
结束队列被设置为未定义时,就像console.log()
证明的那样,下面是受影响的代码片段。
var queue;
function init() {
queueSetup();
};
function queueSetup() {
var queue = new createjs.LoadQueue(false);
console.log(queue);
queue.installPlugin(createjs.Sound);
console.log(queue);
queue.addEventListener("complete", queueLoaded);
queue.loadManifest([
{id:"nbckg", src:"images/nbckg.png"},
{id:"newgame", src:"images/newgame.png"}
]);
console.log(queue);
}
function queueLoaded() {
//the following console.log logs undefined
console.log(queue);
compName = "NULLCOMPNAME ";
stage = new createjs.Stage("MyCanvas");
createjs.Ticker.addEventListener("tick", tick);
//LOAD MAINMANU
// loadMainMenu();
initUI();
}
我不熟悉createjs,但在queueSetup()
中,var queue
创建了一个名为queue
的新变量,作用域为该函数。要在函数外部引用queue
变量,请省略var
。
正如其他人提到的,您正在尝试访问一个不是全局变量的变量。它只在queueSetup
函数中可用。您可以将其声明为window.queue
并完成它,但与其这样做,不如返回它并将其传递给queueLoad
函数。
function init() {
queueSetup();
};
function queueSetup() {
var queue = new createjs.LoadQueue(false);
console.log(queue);
queue.installPlugin(createjs.Sound);
console.log(queue);
queue.addEventListener("complete", function() {
queueLoaded(queue); // pass the queue variable to our queueLoaded function
});
queue.loadManifest([
{id:"nbckg", src:"images/nbckg.png"},
{id:"newgame", src:"images/newgame.png"}
]);
console.log(queue);
return queue;
}
function queueLoaded(queue) { // add the variable as an argument
//the following console.log logs undefined
console.log(queue);
compName = "NULLCOMPNAME ";
stage = new createjs.Stage("MyCanvas");
createjs.Ticker.addEventListener("tick", tick);
//LOAD MAINMANU
// loadMainMenu();
initUI();
}
相关文章:
- 打字稿显示不能设置未定义的属性,如何解决
- 未捕获类型错误:无法设置未定义的属性“操作”
- 快速会话 无法设置未定义的属性“id”
- 节点.js未捕获的异常类型错误:无法设置未定义的预处理 ''
- 如何处理 getJSON 调用上的“未捕获类型错误:无法设置未定义的属性'prop'”
- 在 JavaScript 对象中添加子对象时获取“无法设置未定义的属性'项目'”
- 在读取之前设置未定义的 javascript 属性
- '无法设置未定义'的属性;应用绑定时出错
- 不能设置未定义的属性
- 无法设置未定义或空引用的属性“ajax已启用”
- 二维数组未捕获类型错误:无法设置未定义的属性“0”
- 无法设置未定义的属性
- 循环遍历输入数组以设置值,“无法设置未定义的属性值”
- 无法设置未定义的属性“helloMessage”
- 类型错误: 无法设置未定义的属性<函数>
- 未捕获的类型错误: 无法设置未定义的属性“0”
- 无法设置未定义的属性“remote_auth_s3”,当尝试使用 PHP/Laravel 实现 Disqus SSO 时
- 无法设置未定义的 - 以编程方式创建的元素的属性 X
- Ember Data 1.0 加载路由时出错:类型错误:无法设置未定义的属性“类型键”
- AngularJS 表单验证 - 类型错误:无法设置未定义的属性“整数”