【问题标题】:How to check if function exist?如何检查函数是否存在?
【发布时间】:2015-07-24 19:18:23
【问题描述】:

如何检查 jquery 是否是函数,但函数在另一个 .js 文件中?

validation.js:

if ($.isFunction('payment')) {
    $('[data-numeric]').payment('restrictNumeric');
    $('.cc-number').payment('formatCardNumber');
    $('.cc-exp').payment('formatCardExpiry');
    $('.cc-cvc').payment('formatCardCVC');
}

这是错误的,因为 func 付款在 payment.js 中。

【问题讨论】:

标签: javascript jquery


【解决方案1】:

问题解决了。它的作品:

if ($.fn.payment) {
    //do something
}

【讨论】:

    【解决方案2】:

    你可以使用window检查一个函数是否存在

    例如

    var fn = window['NameOfTheFunction']; 
    if(typeof fn === 'function') {
        doSomething();
    }
    

    如果您在 payment.js 中的函数是自包含函数的一部分,则需要将其设置为以便窗口对象可以通过在自包含函数中添加它来“看到”它:

    window.NameOfTheFunction = NameOfTheFunction;
    

    【讨论】:

      【解决方案3】:

      尝试如下检查,

       if (typeof payment !== 'undefined' && $.isFunction(payment)) {
          $('[data-numeric]').payment('restrictNumeric');
          $('.cc-number').payment('formatCardNumber');
          $('.cc-exp').payment('formatCardExpiry');
          $('.cc-cvc').payment('formatCardCVC');
       }
      

      【讨论】:

      • if is function on jquery, but function is in another .js file
      • 文件在 js @Tushar 中无关紧要。 “存在”是指是否在当前窗口范围内。 “文件”只是将对象(函数)添加到范围。你在说什么?
      • @Liam 他想检查 jQuery $ 是否定义了函数。前任。 $.myFunc
      【解决方案4】:

      这样试试

      if (typeof payment === "function")
      {
        // Do something
      }
      

      【讨论】:

      • if is function on jquery, but function is in another .js file
      猜你喜欢
      • 2014-02-18
      • 2014-01-14
      • 2010-11-05
      • 2017-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-22
      相关资源
      最近更新 更多