这个功能在Facebook上有什么作用;什么是JavaScript源代码?
我读了一些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
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:不,它没有副作用,也不计算任何东西。它的唯一目的是创建函数,想想