Подтвердить что ты не робот

Определите, существует ли статическая функция JavaScript для предотвращения ошибок

У меня есть script на моем веб-сайте, который вызывает статически называемую функцию при вызове:

childLoad();

Функция childLoad() не всегда определяется, хотя она всегда называется. Как я могу предотвратить вызов script этой функции, если она не существует?

4b9b3361

Ответ 1

if ( typeof childLoad == 'function' ) { 
    childLoad(); 
}

Ответ 2

Вы можете использовать оценку короткого замыкания:

childLoad && childLoad();

<ч/" > EDIT

('childLoad' in this) && childLoad && childLoad();

Это позволит убедиться, что childLoad можно ссылаться, удостоверяется, что это не undefined, а затем вызовите функцию. Он не проверяет, чтобы убедиться, что это функция, но я лично считаю, что это не нужно.

ПРИМЕЧАНИЕ. this может быть не контекстом, который вы имеете в виду, если используете call или apply. Это действительно зависит от остальной части вашего кода.

Ответ 3

if(typeof childLoad == 'function') {   
  childLoad();   
}

Ответ 4

Вы можете просто проверить:

if (childLoad)
    childLoad()

Ответ 5

Вы можете окружить его в попытке поймать!

Ответ 6

<script>
/* yourfunction */
if(typeof yourfunction == 'function') {   
  yourfunction();   
}
function yourfunction(){
  //function code
}
</script>