javascript - 如何检查 JavaScript 中是否存在函数?

标签 javascript

我的代码是

function getID( swfID ){
     if(navigator.appName.indexOf("Microsoft") != -1){
          me = window[swfID];
     }else{
          me = document[swfID];
     }
}

function js_to_as( str ){
     me.onChange(str);
}

但是,有时我的 onChange 无法加载。 Firebug 错误与

me.onChange is not a function

我想优雅地降级,因为这不是我程序中最重要的功能。 typeof 给出同样的错误。

关于如何确保它存在然后只执行 onChange 的任何建议?

(除了 try catch 一项之外,以下方法均无效)

最佳答案

试试这样的:

if (typeof me.onChange !== "undefined") { 
    // safe to use the function
}

或者更好(根据 UpTheCreek 赞成的评论)

if (typeof me.onChange === "function") { 
    // safe to use the function
}

关于javascript - 如何检查 JavaScript 中是否存在函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1042138/

相关文章:

javascript - 使用 styled-component 在父组件的悬停状态下隐藏子组件

javascript - 谷歌地图 API key 错误 "Your site URL to be authorized"

javascript - 使用网格外部的控件通过远程数据绑定(bind)在 MVC 中过滤 Kendo UI 网格

javascript - JavaScript 中的 MVC : Should i use callback when instantiating the three entities?

javascript - Firebase,如何在日期范围内对键进行排序

javascript - 在 Bootstrap-datepicker 中禁用几个日期范围

javascript - 单击触发器并传递 X、Y 坐标值

javascript - abort() onPopstate 之后 AJAX 停止工作

javascript - Ionic 3 + Firebase Storage 获取个人资料图片

javascript - 每当 Javascript 中出现正则表达式时,将 HREF 添加到文档内容