#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(); }
Комментариев нет:
Отправить комментарий