【发布时间】:2016-07-13 16:40:40
【问题描述】:
抱歉,第一次尝试解释这个问题很糟糕。尝试学习 Javascript 和来自代码问题(codewars)的问题让我很难过。它声明,编写一个函数,该函数将另一个函数作为参数并缓存结果,以便如果发送相同的参数,则从缓存中提取返回,并且不会再次调用实际函数。例如:
var x = function(a, b) { a * b };
var cachedFunction = cache(x);
cachedFunction(4, 5); // function x should be executed
cachedFunction(4, 5); // function x should not be invoked again, instead the cached result should be returned
cachedFunction(4, 6); // should be executed, because the method wasn't invoked before with these arguments
我不确定如何访问通过 cachedFunction 发送的参数。目标是编写缓存,以便它可以处理带有任意数量参数的函数 x。
【问题讨论】:
-
您实际上并没有将
x、5和4传递给cache函数。您将 5 和 4 传递给x函数,接收结果,然后将 that 传递给cache。 (物有所值) -
你不能。您的
cache函数正在以20的值调用(x(5,4)的 结果),它不知道传递给x或x的值是什么曾经打电话。另外,您的cache函数有什么作用?您是否supposed 将其传递给函数?因为目前,你不是。 -
抱歉,我第一次尝试理解问题和措辞很糟糕。我已经重写了。不确定正确的礼仪是完全废弃原件并重写还是进行如此大的编辑。如果我应该做前者,我深表歉意。
-
您的编辑使所有给定的答案无效,因为您的问题现在是一个非常不同的问题。最好还原您的编辑并提出一个新问题。
标签: javascript function parameter-passing