apply-or
v0.5.2
Published
Invoke .apply if value is a function, otherwise, return default value.
Maintainers
Readme
apply-or
Invoke .apply if value is a function, otherwise, return default value.
npm install apply-or --savenpm stats
Why?
Function.prototype.apply is normally sufficient; however, there are situations where it is useful to treat a value as a Function (invoke it) only if it is indeed a Function; otherwise, return it as-is. Calling .apply on a value that is not a function would cause an error.
Examples
delay.js
var apply = require('apply-or')
function delay (cb) {
setTimeout(apply.bind(null, cb))
}
delay('Hello') // does nothing (because argument is not a function)
delay(console.log.bind(console, 'Hello, World')) // prints 'Hello, World' to stdoutdivmax.js
var apply = require('apply-or')
function divmax (divisor) {
return Math.max.apply(null, this.val) / divisor
}
var data = {
val: [9, 7, 15, 12]
}
apply(divmax, 5, data)
//=> divmax.apply({ val: [9, 7, 15, 12] }, [5])
//=> 15 / 5
//=> 3API
apply(func, args, self)
arguments
func: (Function)Function to be invoked.args: (Array|*)Arguments to apply to function.self: (Object)thisvalue.
returns
(*)Result of applying function or default value.
