Skip to main content

memoize

_.memoize(func) # Ⓢ [Ⓣ][1] Ⓝ

Creates a function that memoizes the result of func. If resolver is



provided, it determines the cache key for storing the result based on the



arguments provided to the memoized function. By default, the first argument



provided to the memoized function is used as the map cache key. The func



is invoked with the this binding of the memoized function.





Note: The cache is exposed as the cache property on the memoized



function. Its creation may be customized by replacing the _.memoize.Cache



constructor with one whose instances implement the



Map



method interface of clear, delete, get, has, and set.

Since​

0.1.0

Arguments​

  1. func (Function): The function to have its output memoized.

Returns​

(Function): Returns the new memoized function.

Example​

var object = { 'a': 1, 'b': 2 };
var other = { 'c': 3, 'd': 4 };

var values = _.memoize(_.values);
values(object);
// => [1, 2]

values(other);
// => [3, 4]

object.a = 2;
values(object);
// => [1, 2]

// Modify the result cache.
values.cache.set(object, ['a', 'b']);
values(object);
// => ['a', 'b']

// Replace `_.memoize.Cache`.
_.memoize.Cache = WeakMap;