Ответ 1
if ( typeof childLoad == 'function' ) {
childLoad();
}
У меня есть script на моем веб-сайте, который вызывает статически называемую функцию при вызове:
childLoad();
Функция childLoad()
не всегда определяется, хотя она всегда называется. Как я могу предотвратить вызов script этой функции, если она не существует?
if ( typeof childLoad == 'function' ) {
childLoad();
}
Вы можете использовать оценку короткого замыкания:
childLoad && childLoad();
<ч/" > EDIT
('childLoad' in this) && childLoad && childLoad();
Это позволит убедиться, что childLoad
можно ссылаться, удостоверяется, что это не undefined, а затем вызовите функцию. Он не проверяет, чтобы убедиться, что это функция, но я лично считаю, что это не нужно.
ПРИМЕЧАНИЕ. this
может быть не контекстом, который вы имеете в виду, если используете call
или apply
. Это действительно зависит от остальной части вашего кода.
if(typeof childLoad == 'function') {
childLoad();
}
Вы можете просто проверить:
if (childLoad)
childLoad()
Вы можете окружить его в попытке поймать!
<script>
/* yourfunction */
if(typeof yourfunction == 'function') {
yourfunction();
}
function yourfunction(){
//function code
}
</script>