我用口才的javascript看到了这个示例,并想知道此函数的工作原理。有人可以向我解释一下吗?

function multiplier (factor) {

   return function(number){

      return number * factor;

       };
 }
 var twice = multiplier(2);
 console.log((twice(5));
   // 10


我能够遵循参数factor = 2。
我对两次(5)以及如何成为参数编号感到困惑。

最佳答案

这是JavaScript中“关闭”的示例。

说:

var twice = multiplier(2)


真的和说的一样:

var twice = function(number){
  return number * 2;
};


因此,两次成为对函数的引用,该函数将为您返回发送给它的值的两倍。

乘法器函数返回function(number){...},该值在因数(在本例中为2)上具有“闭合”值。

这就是为什么在调用twice(5)时得到的结果是10。

您需要阅读闭包:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures

10-07 19:02