import getTag from './internals/getTag';
import { functionTags } from './internals/native';
/**
* 检查值是否为 `Function` 对象。
*
* `Function` `AsyncFunction` `GeneratorFunction` `Proxy` 都将返回 `true`。
*
* @alias module:Language.isFunction
* @since 1.0.0
* @param {*} value 要检查的值。
* @returns {boolean} 如果值为 `Function` 对象,返回 `true`,否则返回 `false`。
* @example
*
* isFunction(()=>{})); // true
*
* isFunction(/x/); // false
*
*/
function isFunction(value) {
if (typeof value === 'function') {
return true;
}
const tag = getTag(value);
return functionTags.some((item) => item === tag);
}
export default isFunction;