2013-04-22 34 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;