如何最好地检查一个变量是否是函数?
var cb = function () {
return;
}
if (!!(cb && cb.constructor && cb.apply)) {
cb.apply(somevar, [err, res]);
}
//VS
if (!!(cb && 'function' === typeof cb) {
cb.apply(somevar, [err, res]);
}
如何最好地检查一个变量是否是函数?
var cb = function () {
return;
}
if (!!(cb && cb.constructor && cb.apply)) {
cb.apply(somevar, [err, res]);
}
//VS
if (!!(cb && 'function' === typeof cb) {
cb.apply(somevar, [err, res]);
}
(typeof foo === 'function')
但是,如果您想要匹配类似函数的对象(这种情况很少见,但可能很有用),您可以检查该对象是否可调用:
(foo && foo.call && foo.apply)
typeof
):(foo.constructor === Function)
如果你想引发一个异常,你可以:
try {
foo();
} catch (e) {
// TypeError: foo is not a function
}
if(typeof cb == 'function') { ... }
这么简单。 - undefined