不能使用兩個不同的變量來自不同的同名範圍在同一範圍內。因此,當您用var
關鍵字聲明本地global_var
時,您的全局變得無法訪問。
如果你需要做一個局部變量具有相同的名稱作爲一個全球性的,你可以用這樣一個封閉:
jQuery(document).ready(function($){
(function(global_var){
// global_var is a local copy of global_var from the outer scope
global_var = typeof global_var == 'undefined' ? {foo:2} : global_var;
console.log(global_var);
})(global_var);
});
您也可以參考它作爲window
對象的屬性,如果你知道它的全球:
jQuery(document).ready(function($){
var global_var = typeof window.global_var == 'undefined' ?
{foo:2} : window.global_var;
console.log(global_var);
});
最後,如果你不想要一個本地副本,只是想從外部範圍訪問變量,則不要使用var
關鍵字,因爲該關鍵字的目的是宣佈新變量:
jQuery(document).ready(function($){
global_var = typeof global_var == 'undefined' ? {foo:2} : global_var;
console.log(global_var);
});
不正確的,它提醒2 – Alex
http://jsfiddle.net/tYErg/2/ – 2012-06-22 16:28:34