Javascript VAR的问题

时间:2013-04-22 04:58:09

标签: javascript

我遇到以下代码的问题。如果我删除var user_idvar 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;
    }
}

2 个答案:

答案 0 :(得分:9)

var语句声明当前函数范围内的变量,将具有相同名称的更高范围内的任何变量隐藏起来。

您遇到的两行代码是创建新变量user_idcompany_id,它们会在整个函数持续时间内完全隐藏外部变量,然后将它们分配给自己。

因此,您要将每个变量设置为undefined

答案 1 :(得分: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;