在我看來,如果您的代碼路徑試圖在定義之前使用全局變量,那麼您的代碼就會被破壞。要麼你需要給它一個默認值,你需要重新排序代碼的加載或執行,或者當你的環境沒有被初始化時,你需要阻止代碼運行。
它可以初始化變量當且僅當它尚未定義是這樣的:
var clientId = clientId || "foo";
你可以把這個在使用它的任何模塊的頂部。這會初始化它,只要它沒有被初始化就可以。
你也可以建立你自己,你會改用直接訪問這樣的變量的訪問功能:
// put this somewhere early in the JS loading process
function getClientId() {
if (typeof window.clientId !== "undefined") {
return(window.clientId);
} else {
return("foo"); // whatever default value you want to return here
}
}
// use it like this:
function DoSomething() {
var val=$('#'+getClientId()).val();
.
.
.
}
或者,你可以做一個全球性的功能,將測試:
function isClientId() {
return(typeof window.clientId !== "undefined");
}
// use it like this:
function DoSomething() {
if (isClientId()) {
var val=$('#'+clientId).val();
.
.
.
}
}
您可以創建這樣的方法,實現'如果( typeof variable ==='undefined')'。在我看來這是一個很好的解決方案。 – iMoses 2012-03-28 14:56:17