2013-04-22 94 views
0

我遇到了以下代码的问题。如果我删除var user_idvar company_id,则JavaScript可正常工作。使用Javascript VAR时遇到问题

为什么不能正常工作?

var user_id = user_id; 
var company_id = company_id; 


if (pageNum == 1) 
    strActionPage = CurrentPath + "upload.php?act=store&user_id=" + user_id; 

else 

    strActionPage = CurrentPath + "upload.php?act=store&company_id" + company_id; 

for(i=0;i<4;i++){ 
    if(document.getElementsByName("ImageType").item(i).checked == true){ 
     strImageType = i + 1; 
     break; 
    } 
} 

回答

9

var语句声明当前函数范围内的变量,在阴影高了作用域的变量具有相同的名称。

您的两行代码正在创建新变量user_idcompany_id,这些变量完全隐藏了此函数整个持续时间的外部变量,然后将它们分配给自己。

所以你将每个变量设置为undefined

+0

感谢Jim,事实上我已经把变量放在顶部,在funcion之上并且工作。 – user2112020 2013-04-22 05:06:16

0

我觉得自己没必要重新分配像user_idcompany_id用户变量,他们来自任何从中调用的函数,其中相同的,所以其足够使用

if (pageNum == 1) 
    strActionPage = CurrentPath + "upload.php?act=store&user_id=" + user_id; 

else 

    strActionPage = CurrentPath + "upload.php?act=store&company_id" + company_id; 

for(i=0;i<4;i++){ 
    if(document.getElementsByName("ImageType").item(i).checked == true){ 
     strImageType = i + 1; 
     break; 
    } 
} 

没有

var user_id = user_id; 
var company_id = company_id;