Как проверить существование функции в JavaScript?

Столкнулся с проблемой при проверке наличия функции в JavaScript. Вот мой код:

function получитьИд(идСвф) {
  if (navigator.appName.indexOf('Microsoft') !== -1) {
    я = window[идСвф];
  } else {
    я = document[идСвф];
  }
}

function jsВAs(строка) {
  я.приИзменении(строка);
}

Иногда приИзменении не загружается, и Firebug выдает ошибку:

я.приИзменении не является функцией

Как можно проверить существование функции и выполнить ее только если она есть? Хочу обеспечить плавную деградацию, так как это не самая важная часть программы. typeof дает ту же ошибку.

Пробовал разные методы, но пока только try-catch работает. Есть ли другие способы?

Из личного опыта, самый надёжный способ - использовать оператор &&. Примерно так:

я && я.приИзменении && я.приИзменении(строка);

Этот код проверяет существование объекта я, наличие метода приИзменении и вызывает его, если всё ок. Если что-то отсутствует, просто ничего не произойдёт. Простой и эффективный подход, который не требует дополнительных проверок и обработки ошибок. Использую его постоянно в своих проектах.

Можно попробовать такой вариант:

if (я && typeof я.приИзменении === ‘function’) {
я.приИзменения(строка);
} else {
console.log(‘Функция недоступна’);
}

Это проверит и существование объекта ‘я’, и наличие метода. Если что-то отсутствует, просто выведем сообщение в консоль. Так код не сломается, даже если функция не загрузилась.