不能使用两个不同的变量来自不同的同名范围在同一范围内。因此,当您用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