19 lines
460 B
JavaScript
19 lines
460 B
JavaScript
|
module.exports = isFunction
|
||
|
|
||
|
var toString = Object.prototype.toString
|
||
|
|
||
|
function isFunction (fn) {
|
||
|
if (!fn) {
|
||
|
return false
|
||
|
}
|
||
|
var string = toString.call(fn)
|
||
|
return string === '[object Function]' ||
|
||
|
(typeof fn === 'function' && string !== '[object RegExp]') ||
|
||
|
(typeof window !== 'undefined' &&
|
||
|
// IE8 and below
|
||
|
(fn === window.setTimeout ||
|
||
|
fn === window.alert ||
|
||
|
fn === window.confirm ||
|
||
|
fn === window.prompt))
|
||
|
};
|