2013-05-01 3 views
0

Я пишу приложение в Javascript, и, хотя мне нравится этот язык, мне было интересно узнать о неиспользуемых параметрах.Использование только одного параметра функции в javascript

Скажем, у меня есть функция следующим образом:

function test(data, complete){ 
    if (data){ 
     return complete(null, 'yes'); 
    } 
    else{ 
     return complete('error', null); 
    } 
} 

Я называю эту функцию с помощью обратного вызова, но я заинтересован только в проверке на наличие ошибок - если существует данных, я могу двигаться вперед с моей программой. Это нормально, если я просто передаю параметр ошибки в функцию?

test(data, function(err){ 
    if(err){ 
     //Uh Oh 
    } 
    else{ 
     //Keep going 
    } 
}); 

Или лучше, если передать как ошибку, так и результат (хотя переменная результата остается неиспользованной)?

test(data, function(err, result){ 
    if(err){ 
     //Uh Oh 
    } 
    else{ 
     //Keep going 
    } 
}); 

ответ

4

Это нормально, если я просто передаю параметр ошибки в функцию?

Да. Аргументы, которые не получают явного значения, вместо этого получат undefined (но все равно будут существовать и локально локализованы, поэтому будут по-прежнему маскировать переменные с тем же именем из более широкой области).

В качестве альтернативы любые дополнительные аргументы по-прежнему будут доступны через массив, такой как arguments object.

+1

+1 для упоминания аргументов –

2

Это не имеет значения.

Аргументы функции используются только для создания локальных переменных.
Вы можете передать любое количество параметров любой функции, независимо от ее объявления.

+0

Вы передаете аргументы в функцию не параметров;) – zeroflagL

Смежные вопросы