How to use the isFunction function from lodash

Find comprehensive JavaScript lodash.isFunction code examples handpicked from public code repositorys.

In JavaScript, _.isFunction is a function in the Lodash library that checks whether a value is a function or not.

3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
 * @category Objects
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if the `value` is a function, else `false`.
 * @example
 *
 * _.isFunction(_);
 * // => true
 */
function isFunction(value) {
  return typeof value == 'function';
fork icon73
star icon711
watch icon29

15
16
17
18
19
20
21
22
23
24
25
26
}


function mapObj(o, f) {
  var out = {};


  var ff = _.isFunction(f) ? function(val, key) {
    out[key] = f(val, key);
  } : function(val, key) {
    out[key] = o[key];
  };
fork icon125
star icon491
watch icon21

+ 4 other calls in file

How does lodash.isFunction work?

_.isFunction is a function in the Lodash library for JavaScript that checks whether a value is a function or not.

When _.isFunction is called with a value as input, it performs the following operations:

  • It returns true if the value is a function, false otherwise.
  • To check if the value is a function, it checks whether the typeof the value is "function".
  • If the typeof check returns true, _.isFunction also checks whether the value is a constructor function or a non-native function created by the Function constructor.

By using _.isFunction, developers can easily determine whether a value is a function or not, which can be useful for conditionally executing code or passing functions as arguments to other functions. Note that _.isFunction does not perform any type coercion or type checking beyond checking the typeof the value, so it may return unexpected results if used improperly.

338
339
340
341
342
343
344
345
346
347
    function (config, cb) {
        if (config) {
            return cb(null, config);
        }

        return _.isFunction(run.options.systemProxy) ? run.options.systemProxy(url, cb) : cb(null, undefined);
    }
], function (err, config) {
    if (err) {
        run.triggers.console(context.coords, 'warn', 'proxy lookup error: ' + (err.message || err));
fork icon92
star icon181
watch icon34

191
192
193
194
195
196
197
198
199
200
module.exports.isEqualWith         = _.isEqualWith;
module.exports.isError             = _.isError;
module.exports.isEven              = _.isEven;
module.exports.isFinite            = _.isFinite;
module.exports.isFloat             = _.isFloat;
module.exports.isFunction          = _.isFunction;
module.exports.isIncreasing        = _.isIncreasing;
module.exports.isIndexed           = _.isIndexed;
module.exports.isInstanceOf        = _.isInstanceOf;
module.exports.isInteger           = _.isInteger;
fork icon19
star icon122
watch icon0

+ 92 other calls in file

Ai Example

1
2
3
4
5
6
7
8
9
10
11
const _ = require("lodash");

function multiply(a, b) {
  return a * b;
}

const num = 5;
const isFunc = _.isFunction(multiply);

console.log(isFunc); // Outputs: true
console.log(_.isFunction(num)); // Outputs: false

In this example, we're using _.isFunction to check whether the multiply function is actually a function or not. We provide multiply as input to _.isFunction, which returns true since multiply is indeed a function. We also check whether the num variable is a function or not, which returns false since num is a number, not a function.

3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
    // with `object` as context and arguments; otherwise, return undefined.
    attempt: function(object, method) {
      if (object == null) return void 0;
      var func = object[method];
      var args = slice.call(arguments, 2);
      return _.isFunction(func) ? func.apply(object, args) : void 0;
    }
  });


})(this);
fork icon3
star icon2
watch icon1

+ 117 other calls in file

186
187
188
189
190
191
192
193
194
195
    }
    return false;
}

// Check value type
if (_.isArray(type) && _.isFunction(type[0])) {
    if (!_.isArray(value)) return msg('wrongType','array');
    type = type[0];
    value = value[0];
}
fork icon1
star icon2
watch icon2

+ 15 other calls in file

144
145
146
147
148
149
150
151
152
153
assert.ok(
  _.isString(packagePath),
  'applyToNodeModulesSync: `packagePath` must be a non-empty string',
);
assert.ok(
  _.isFunction(func),
  'applyToNodeModulesSync: `func` must be a function',
);

if (!isPackageSync(packagePath)) {
fork icon8
star icon0
watch icon2

41
42
43
44
45
46
47
48
49
50
51
 */
// _.forEach(EXPORTED_DBS, db => {
//   db.deleteDoc = function (docID, docRev, cb) {
//     var givenDocID = _.isString(docID) || _.isNumber(docID);
//     var givenDocRev = _.isString(docRev);
//     var givenCallback = _.isFunction(cb);


//     if (givenDocID && givenDocRev && givenCallback) {
//       db.destroy(docID, docRev, cb);
//     } else if (givenCallback) {
fork icon1
star icon20
watch icon6

+ 12 other calls in file

123
124
125
126
127
128
129
130
131
132
const req = {
  rid: rid,
  type: type,
  payload: payload,
  opts: opts,
  cb: _.isFunction(cb) ? cb : () => {},
  _ts: Date.now()
}

req.qhash = this.getRequestHash(type, payload)
fork icon13
star icon3
watch icon6

81
82
83
84
85
86
87
88
89
90
91
92


        debug('init with', obj);


        generator.run(() => {
            debug('return with', generator.props);
            return _.isFunction(cb) ? cb(generator.props) : generator.props;
        });
    }
}

fork icon9
star icon11
watch icon14

431
432
433
434
435
436
437
438
439
440
441
442
443
console.log(isError); // => true


const isFinite = _.isFinite(1);
console.log(isFinite); // => true


const isFunction = _.isFunction(() => {});
console.log(isFunction); // => true


const isInteger = _.isInteger(1);
console.log(isInteger); // => true
fork icon0
star icon4
watch icon0

+ 15 other calls in file

237
238
239
240
241
242
243
244
245
246
  }
  Object.keys(this.options.arxivarPluginSettings).forEach(key => {
    const prompt = _.isNil(prompts) ? undefined : prompts.find(p => p.name === key);
    const value = this.options.arxivarPluginSettings[key]
    if (!_.isNil(prompt) && !_.isNil(prompt.default) && _.isNil(value)) {
      this.options.arxivarPluginSettings[key] = _.isFunction(prompt.default) ? prompt.default(this.options.arxivarPluginSettings) : prompt.default
    }
  });
  return Promise.resolve(this.options.arxivarPluginSettings)
}
fork icon2
star icon5
watch icon7

163
164
165
166
167
168
169
170
171
172
if (axel.config.policies['*']) {
  if (Array.isArray(axel.config.policies['*'])) {
    policies = policies.concat(axel.config.policies['*']);
  } else if (
    _.isString(axel.config.policies['*'])
    || _.isFunction(axel.config.policies['*'])
  ) {
    policies.push(axel.config.policies['*']);
  }
}
fork icon0
star icon3
watch icon1

2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
        this.ejson.addType(typeName, factory);
    }
}
createFactory(type) {
    const construct = function (serializer, TypeCtor, json) {
        const propTypes = lodash.isFunction(TypeCtor.getPropTypes)
            ? TypeCtor.getPropTypes()
            : {};
        for (const key of Object.keys(propTypes)) {
            if (json[key]) {
fork icon0
star icon2
watch icon0

+ 9 other calls in file

350
351
352
353
354
355
356
357
358
359

  return BbPromise.resolve();
};

// Rspack config can be a Promise, If it's a Promise wait for resolved config object.
if (this.rspackConfig && _.isFunction(this.rspackConfig.then)) {
  return BbPromise.resolve(
    this.rspackConfig.then((config) => processConfig(config)),
  );
}
fork icon0
star icon1
watch icon0

182
183
184
185
186
187
188
189
190
191
if (!_.isNull(appPermissions)) {
    hasAppPermission = _.any(appPermissions, checkPermission);
}

// Offer a chance for the TargetModel to override the results
if (TargetModel && _.isFunction(TargetModel.permissible)) {
    return TargetModel.permissible(
        modelId, actType, context, loadedPermissions, hasUserPermission, hasAppPermission
    );
}
fork icon0
star icon1
watch icon2

482
483
484
485
486
487
488
489
490
491
exports.escapeRegEx = function (q) {
  return q.replace(/[-[\]{}()*+?.,\\/^$|#\s]/g, '\\$&');
};
exports.flattenDBTasks = function(dbtasks, accumulator){
  if(!accumulator){
    if(_.isArray(dbtasks) && dbtasks.length && _.isFunction(dbtasks[0])) accumulator = [];
    else accumulator = {};
  }
  _.each(dbtasks, function(val, key){
    if(_.isFunction(val)){
fork icon1
star icon0
watch icon3

+ 6 other calls in file

317
318
319
320
321
322
323
324
325
326
*/
cache.can = func => {
	switch (func) {
		case 'clear':
		case 'clean':
			return _.isFunction(cache.activeModule[func])
			|| (_.isFunction(cache.activeModule.list) && _.isFunction(cache.activeModule.unset))
		default: // Also includes 'list'
			return !! _.isFunction(cache.activeModule[func]);
	}
fork icon0
star icon0
watch icon4

+ 11 other calls in file

380
381
382
383
384
385
386
387
388
389
function _log(options, ...args) {
  const { color, serializeAs } = _.defaults(options, defaultOptions);
  if (loggerInfo.logAll || index === "always" || index === loggerInfo.lastLogIndex) {
    console.log(...args.map(
      (arg) => String(
        isPrimitive(arg) ? arg : _.isFunction(arg) ? arg.toString() : $try(() => serializer[serializeAs](arg), arg)
      ).split("\n").map(paint[color]).join("\n")
    ));
  }
}
fork icon0
star icon0
watch icon1

+ 14 other calls in file

61
62
63
64
65
66
67
68
69
70
71
    return internals.createSet(vals, 'B');
  }
};


internals.deserializeAttribute = function (value) {
  if(_.isObject(value) && _.isFunction(value.detectType) && _.isArray(value.values)) {
    // value is a Set object from document client 
    return value.values;
  } else {
    return value;
fork icon0
star icon0
watch icon1

Other functions in lodash

Sorted by popularity

function icon

lodash.get is the most popular function in lodash (7670 examples)