我遇到以下代码的问题。如果我删除var user_id
和var company_id
,则javascript会正常运行。
为什么这不起作用?
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;
}
}
答案 0 :(得分:9)
var
语句声明当前函数范围内的变量,将具有相同名称的更高范围内的任何变量隐藏起来。
您遇到的两行代码是创建新变量user_id
和company_id
,它们会在整个函数持续时间内完全隐藏外部变量,然后将它们分配给自己。
因此,您要将每个变量设置为undefined
。
答案 1 :(得分:0)
我认为他们不需要重新分配像user_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;
}
}
没有
var user_id = user_id;
var company_id = company_id;