chain-able
Version:
interfaces that describe their intentions.
39 lines (38 loc) • 2.48 kB
JavaScript
/**
* Checks if `value` is classified as a `Function` object.
* @category Lang
*
* @param {*} x The value to check.
* @return {boolean} x isFunction
*
* @since 3.0.0
* @memberOf is
* @func isFunction
*
* @NOTE || x instanceof Function
*
* @polyfill safari=9
* The use of `Object#toString` avoids issues with the `typeof` operator
* in Safari 9 which returns 'object' for typed arrays and other constructors.
* there is no polyfill for this
* https://github.com/krambuhl/custom-event-polyfill/issues/2
* browser usage is < 0.3%, very edge case
*
* @example
*
* isFunction(function() {})
* //=> true
* isFunction(() => {})
* //=> true
* isFunction(new Function())
* //=> true
*
* isFunction(1)
* //=> false
* isFunction('')
* //=> false
* isFunction(/abc/)
* // => false
*/
module.exports = function (x) { return typeof x === 'function'; }
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24uanMiLCJzb3VyY2VzIjpbImZ1bmN0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBGdW5jdGlvbmAgb2JqZWN0LlxuICogQGNhdGVnb3J5IExhbmdcbiAqXG4gKiBAcGFyYW0gIHsqfSB4IFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm4ge2Jvb2xlYW59IHggaXNGdW5jdGlvblxuICpcbiAqIEBzaW5jZSAzLjAuMFxuICogQG1lbWJlck9mIGlzXG4gKiBAZnVuYyBpc0Z1bmN0aW9uXG4gKlxuICogQE5PVEUgfHwgeCBpbnN0YW5jZW9mIEZ1bmN0aW9uXG4gKlxuICogQHBvbHlmaWxsIHNhZmFyaT05XG4gKiAgIFRoZSB1c2Ugb2YgYE9iamVjdCN0b1N0cmluZ2AgYXZvaWRzIGlzc3VlcyB3aXRoIHRoZSBgdHlwZW9mYCBvcGVyYXRvclxuICogICBpbiBTYWZhcmkgOSB3aGljaCByZXR1cm5zICdvYmplY3QnIGZvciB0eXBlZCBhcnJheXMgYW5kIG90aGVyIGNvbnN0cnVjdG9ycy5cbiAqICAgdGhlcmUgaXMgbm8gcG9seWZpbGwgZm9yIHRoaXNcbiAqICAgaHR0cHM6Ly9naXRodWIuY29tL2tyYW1idWhsL2N1c3RvbS1ldmVudC1wb2x5ZmlsbC9pc3N1ZXMvMlxuICogICBicm93c2VyIHVzYWdlIGlzIDwgMC4zJSwgdmVyeSBlZGdlIGNhc2VcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqICBpc0Z1bmN0aW9uKGZ1bmN0aW9uKCkge30pXG4gKiAgLy89PiB0cnVlXG4gKiAgaXNGdW5jdGlvbigoKSA9PiB7fSlcbiAqICAvLz0+IHRydWVcbiAqICBpc0Z1bmN0aW9uKG5ldyBGdW5jdGlvbigpKVxuICogIC8vPT4gdHJ1ZVxuICpcbiAqICBpc0Z1bmN0aW9uKDEpXG4gKiAgLy89PiBmYWxzZVxuICogIGlzRnVuY3Rpb24oJycpXG4gKiAgLy89PiBmYWxzZVxuICogIGlzRnVuY3Rpb24oL2FiYy8pXG4gKiAgLy8gPT4gZmFsc2VcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSB4ID0+IHR5cGVvZiB4ID09PSAnZnVuY3Rpb24nXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9DQSxNQUFNLENBQUMsT0FBTyxHQUFHLFVBQUEsQ0FBQyxDQUFBLENBQUMsQUFBRyxTQUFBLE9BQU8sQ0FBQyxLQUFLLFVBQVUsR0FBQTsifQ==