2012-01-25 2 views
1

У меня есть следующие в разделе моей страницы:Javascript доступа член статического класса

<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, 
     }; 
    } 

ответ

3

Как ваш журнал показывает, у вас есть функцию хранящихся в NumberMaze.GameConfig; а не фактический объект с данными.

Вы должны вызова функция, чтобы получить объект, так как функция return сек объекта:

console.log(NumberMaze.GameConfig().minCanvasWidth); 

Однако, почему бы не установить объект непосредственно вместо того, чтобы оборачивать его внутрь (на первый взгляд бесполезный) функционировать?

(function(undefined) { 
    NumberMaze.GameConfig = { 
     minCanvasWidth : 320, 
     minCanvasHeight : 240, 
     maxCanvasWidth : 640, 
     maxCanvasHeight : 480, 
    }; 
})(); 

Таким образом, оба ваших журнала просто работают.

+0

all .. GameConfig - это функция. правый .. thx для указания его :) – saiy2k

Смежные вопросы