0

我在使用下面的代码时遇到问题。如果我删除var user_idand 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;
    }
}
4

2 回答 2

9

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

您有问题的两行代码正在创建新变量user_id,并且company_id在此函数的整个持续时间内完全隐藏外部变量,然后将它们分配给自己。

因此,您将这些变量中的每一个设置为undefined.

于 2013-04-22T05:01:56.797 回答
0

我认为他们不需要重新分配像user_idand这样的用户变量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;
于 2013-04-22T05:04:59.940 回答