2016-06-16 2 views
0

Может ли функция быть определена в javascript таким образом, чтобы атрибуты были необязательными в вызове функции?Вызов функции Javascript для получения необязательных атрибутов

для меня, например, функции ниже определенная:

function abc(x1,y1,x2,y2){ 
//execution 
} 

Что я готов сделать что-то вроде этого:

function abc(x1,y1,x2,y2,id){ 
if(id!=''){ 
//do something 
}else{ 
// do something else 
} 
} 

вызова функции: а (1,2,3 , 4);

Выиграл ли вышеуказанная функция или сообщите об ошибке?

+1

'id' никогда не будет be '' '', если вы не передадите пустую строку. Используйте строгое сравнение вместо 'undefined'. – Teemu

+0

Это параметры. – SLaks

+1

Все параметры являются необязательными в javascript. Значение по умолчанию для них «undefined». –

ответ

1

Испытание это, как typeof id !== 'undefined'

function abc(x1, y1, x2, y2, id) { 
 
    if (typeof id !== 'undefined') { 
 
    console.log(id); 
 
    } else { 
 
    console.log(arguments); 
 
    } 
 
} 
 

 
abc(1, 2, 3, 4); 
 
console.log('-------------------'); 
 
abc(1, 2, 3, 4, 'YOUR_ID');

1

Это мой первый ответ на StackOverflow.

function miOptionalFunction(a, b, optionalParameter) { 
    if (optionalParameter === undefined) { 
     optionalParameter = "defect value"; 
    } else { 
     //do something... 
    } 
} 
+0

Форматирование приходит во времени ;-) –

1

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

function test(a, b, c = false) { 

} 
1

В JavaScript функция имеет встроенный объект под названием аргументы, вы можете использовать его как это:

function abc(x1, y1, x2, y2, id) { 
    if (arguments.length > 4) { 
     //do something 
    } else { 
     // do something else 
    } 
} 

вы можете найти более подробную информацию here

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