2013-04-22 2 views
0

У меня проблемы с кодом ниже. Если я удалю var user_id и var 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_id и company_id, которые полностью скрывают внешние переменные на протяжении всей этой функции, а затем присваивают их самим.

Значит, вы устанавливаете каждую из этих переменных на undefined.

+0

Спасибо Джим, на самом деле я переместил переменные сверху, выше funcion и работал. – user2112020

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; 
Смежные вопросы