Сомнения в JavaScript применимы - функция памятки

Я борюсь с примером js памятки, найденной в книге, вот код:

Function.prototype.memoized = function(key){
    this._values = this._values || {};
    return this._values[key] !== undefined ? this._values[key] : this._values[key] = this.apply(this, arguments);
}

вотиграть на скрипке с полным примером

что я на самом деле не понимаю, как работает этот кусок кода и что он делает, в частности,apply часть:

return this._values[key] !== undefined ? this._values[key] : this._values[key] = this.apply(this, arguments);

Я знаю и понимаю какapply работает

Метод apply () вызывает функцию с заданным значением this и аргументами, представленными в виде массива.

Предположим, чтоthis._values[key] равноundefined, тогда возвращаемое значение будетthis.apply(this, arguments): этот код перезапускаетmemoized функционировать? Я попытался добавить несколько журналов внутри функции, чтобы увидеть, сколько раз вызывается функция, но кажется, что она была запущена только один раз ..

Может кто-нибудь дать мне подсказку? Это, вероятно, глупый вопрос, пожалуйста, будьте терпеливы, спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос