Страницы

Поиск по вопросам

суббота, 8 февраля 2020 г.

Как в JS передать в функцию опцинальный параметр являющийся фунцкцией?

#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(); }

Комментариев нет:

Отправить комментарий