这个功能在Facebook上有什么作用;什么是JavaScript源代码?

这个功能在Facebook上有什么作用;什么是JavaScript源代码?,javascript,Javascript,我读了一些Facebook的JavaScript,发现了一个奇怪的函数,我无法理解它的用途: function bagof(a) { return function () { return a; }; } 据我所知: bagof是一个接受参数a的函数 bagof立即返回一个匿名函数 然后,返回的函数返回原始参数a 我假设bagof的用法如下: newFunction = bagof("This is the data"); ​console.log( new

我读了一些Facebook的JavaScript,发现了一个奇怪的函数,我无法理解它的用途:

function bagof(a) {
    return function () {
        return a;
    };
}
据我所知:

  • bagof
    是一个接受参数
    a
    的函数
  • bagof
    立即返回一个匿名函数
  • 然后,返回的函数返回原始参数
    a
我假设
bagof
的用法如下:

newFunction = bagof("This is the data");
​console.log( newFunction() );​ //Logs "This is the data"​​​​​​​​​​​​
重点是什么?为什么不直接使用或存储传递到
a
中的任何变量或函数

看起来它包含了许多应用程序的实用函数。

可以使用
bagof()
方法作为工厂创建常量函数(函数总是返回相同的值)

即使您在这种情况下使用:

var randomFun = bagof(Math.random());
调用
randomFun()
将始终返回相同的值,因为
Math.random()
只计算一次(急切地)。我猜这是一种实用方法,当一些API需要一种方法,而我们只是想传递常量值时使用。而不是:

giveMeCallback(function() {return 42})
你可以简单地说:

giveMeCallback(bagof(42))

因此,这个函数并不是真的“做”什么,而是作为创建其他函数的简写方法?@MichaelJasper:不,它没有副作用,也不计算任何东西。它的唯一目的是创建函数,想想