#javascript
Как правильно объявить функцию updateParam() чтобы параметр successCallback был опционален?
Тоесть чтобы обы следующих вызова функции были корректны:
1.
updateParam("myName", "myValue");
2.
updateParam("myName", "myValue", function(){
console.log("Callback");
});
Моя функция:
function updateParam(parameterName, value, successCallback) {
$.ajax({
type: 'POST',
url: 'index.php?c=params&a=updateParam',
///....
success: function (data) {
var response = $.parseJSON(data);
if (response != true) {
console.log(data);
ShowError();
}else{
successCallback();
}
}
});
}
UPDATE:
Интересует есть ли способ декларирования фунции с опциональным параметром, а не простая
проверка существует ли объект.
Либо же, в крайнем случае, проверка является ли этот объект функцией.
Ответы
Ответ 1
В ES2015 можно использовать параметры по умолчанию function updateParam(parameterName, value, successCallback=function(){}) { Важно: данный метод помогает только если параметр не будет передан при вызове. Но он никак не поможет, если в функцию будет передан параметр не ожидаемого типа.Ответ 2
Как вариант: function updateParam(parameterName, value, successCallback) { $.ajax({ type: 'POST', url: 'index.php?c=params&a=updateParam', ///.... success: function (data) { var response = $.parseJSON(data); if (response != true) { console.log(data); ShowError(); } else if( typeof(successCallback) === 'function' ){ successCallback(); } } }); }Ответ 3
... } else if (successCallback) { successCallback(); }
Комментариев нет:
Отправить комментарий