【问题标题】:How to check if function exists in JavaScript?如何检查 JavaScript 中是否存在函数?
【发布时间】:2010-11-05 17:48:32
【问题描述】:

我的代码是

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 不是函数

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

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

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

【问题讨论】:

标签: javascript


【解决方案1】:
// just pass your tested function name instead of myFunctionName
if ( $.isFunction($.fn.myFunctionName) ) {
    console.log( 'write your code here.' );
}

【讨论】:

    【解决方案2】:

    这将验证函数是否存在,如果存在则执行

    me.onChange && me.onChange(str);
    

    因此防止了错误TypeError: me.onChange is not a function

    【讨论】:

      【解决方案3】:
      function isFunction( o ) { return null !== o && "function" === typeof o && !!o.apply; }
      

      【讨论】:

      • 对您的答案进行一些解释会使它对社区更有价值。
      猜你喜欢
      • 2014-02-18
      • 2015-07-24
      • 2016-01-17
      • 1970-01-01
      • 2014-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多