相关疑难解决方法(0)

如何判断是否定义了JavaScript函数

如何判断JavaScript中的函数是否已定义?

我想做这样的事情

function something_cool(text, callback) {
    alert(text);
    if( callback != null ) callback();
}
Run Code Online (Sandbox Code Playgroud)

但它让我了

回调不是一个功能

未定义回调时出错.

javascript reflection

292
推荐指数
9
解决办法
16万
查看次数

在JavaScript中测试函数的最佳方法?

我已经对此进行了相当多的研究,但似乎使用的方法不一致且多种多样.

以下是我过去使用过的一些方法:

/* 1: */  typeof myFunc === 'function'
/* 2: */  myFunc.constructor === Function
/* 3: */  myFunc instanceof Function
Run Code Online (Sandbox Code Playgroud)

作为我研究的一部分,我看了一些知名图书馆如何实现这一目标:

 /* jQuery 1.2.6: */  !!fn && typeof fn != "string" && !fn.nodeName && fn.constructor != Array && /^[\s[]?function/.test( fn + "" )
 /* jQuery 1.3b1: */  toString.call(obj) === "[object Function]"
/* Prototype 1.6: */  typeof object == "function"
      /* YUI 2.6: */  typeof o === 'function'
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,有很多不同的方法使用,肯定已经达成了一个可接受的测试?而且我完全不知道jQuery 1.2.6的表现是什么意思,看起来有点OTT ......

所以,我的问题仍然存在,测试函数的最佳方法是什么?

我还要了解一些上述方法的一些见解,尤其是jQuery 1.2.6.(我可以看到他们在做什么,这看起来很奇怪)

[*]"最好",我的意思是最广泛接受的跨浏览器兼容方法.


编辑:是的,我知道之前已经讨论过,但我仍然喜欢讨论最有效的方法.为什么有这么多不同的使用方法?

到目前为止,关于SO的讨论只提到了运营商类型(主要是),但没有人暗示其他方法的有效性.

javascript function

2
推荐指数
1
解决办法
706
查看次数

标签 统计

javascript ×2

function ×1

reflection ×1