我的页面部分有以下内容:
<head>
<link rel='stylesheet' href='style.css' />
<script language='javascript' src='scripts/jquery-1.7.1.min.js'></script>
<script language='javascript' src='scripts/NumberMaze.js'></script>
<script language='javascript' src='scripts/GameConfig.js'></script>
<script language='javascript' src='scripts/UIManager.js'></script>
<script>
$(document).ready(function() {
var game = new NumberMaze();
});
</script>
</head>
GameConfig.js包含:
(function(undefined) {
NumberMaze.GameConfig = function() {
return {
minCanvasWidth : 320,
minCanvasHeight : 240,
maxCanvasWidth : 640,
maxCanvasHeight : 480,
};
};
})();
NumberMaze.js包含:
(function($, undefined) {
NumberMaze = function() {
console.log(NumberMaze.GameConfig.minCanvasWidth);
console.log(NumberMaze.GameConfig);
};
})(jQuery);
对于NumberMaze.js中的日志,我得到以下输出。如何访问minCanvasWidth的值。我的代码怎么了?
undefined
function () {
return {
minCanvasWidth : 320,
minCanvasHeight : 240,
maxCanvasWidth : 640,
maxCanvasHeight : 480,
};
}
答案 0 :(得分:3)
如您的日志所示,您在NumberMaze.GameConfig
中存储了功能;不是带有数据的实际对象。
你必须调用函数来获取对象,因为函数return
是对象:
console.log(NumberMaze.GameConfig().minCanvasWidth);
但是,为什么不直接设置对象而不是将其包装在(看似无用的)函数中?
(function(undefined) {
NumberMaze.GameConfig = {
minCanvasWidth : 320,
minCanvasHeight : 240,
maxCanvasWidth : 640,
maxCanvasHeight : 480,
};
})();
这样,你的两个日志都能正常工作。