2012-07-11 20 views
2

我有一个函数,我调用另一个函数。它返回一个名为“checked”的变量,但该名称不是全局的,并且仅在该函数的范围内。变量作用域:函数之间传递的名称?

我的其他功能有一个名为“检查”了自己的局部变量,但是当我尝试将其设置为1,它总是返回0。

我发现,如果我删除函数调用给我的第一功能,它然后获取正确的价值。

当两个变量的作用域都局限于它们所在的函数时,这怎么可能?

function filterRadioCheck() 
    { 
     checked = 0; 
     $('#filterType').children('input').each(function() { 


      if ($(this).attr('checked')) 
      { 
       checked = $(this).attr('value'); 
      } 

     }); 


     return checked; 

    } 

    function setTagDefaultMode() 
    { 
     checked = 1; 


     radiocheck = filterRadioCheck(); 

     //******'checked' is always 0 after this point*****/// 
     // alert(checked) will return 0 even though checked it is set to 1 above; 

    } 
+0

http://blog.niftysnippets.org/2008/03/horror-of-implicit-globals.html – jbabey 2012-07-11 16:56:15

回答

5

变量“checked”是全局变量,因为您忘记了var关键字。

var checked = 0; 
+0

我不知道我是如何做到这一步用了知道。谢谢一堆! – 2012-07-11 18:05:32

相关问题