- 0
✩
0
Как сказать, что javascript функция уже объявлена?
Хотелось бы иметь что-то в таком виде:
function something_cool(text, callback){
alert(text);
if( callback != null ){ callback(); };
}
Но я получаю ошибку 'callback is not a function' когда callback не определена.
300
2 ответа:
-
- 1
Как-то так. Если something_cool запускается без ошибки — проверяем callback на наличие ошибок, если все ОК — запускаем ее, иначе — говорим о наличии в ней ошибки. Иначе — callback не определена.
function something_cool(text, callback){ if(typeof(callback) == "function"){ try { callback(); } catch (error) { alert("the error is in the funciton"); } } if(callback == false){ alert("the function underfined"); } } try{ something_cool("text", runIfDefined) } catch(err){ something_cool("text", false); } -
- 0
А почему не проверяете на соответсвие
undefined?Или даже еще проще:
if(!callback || (typeof(callback) != "function")){ alert('No function defined') else { callback() }И кстати же, callback лучше вызывать через .call() / .apply(), чтобы иметь возможность задать, что будет иметься в виду под this внутри callback.
Чтобы написать ответ, вы должны авторизироваться.