Javascript:返回带有预定义参数的函数

sta*_*nch 12 javascript function

我有一个像这样的功能

function a (p1, p2) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

并且在某些范围内想要得到这样的东西:

function b (/* no params! */) { return a (my1, my2) }
Run Code Online (Sandbox Code Playgroud)

其中my1和my2在此范围内以某种方式定义.所以我应该得到一个无参数函数b,当调用时调用带有固定参数my1和my2的函数.现在,问题是,为什么这不对,哪个是:)

UPD:好的,我在这些参数中有一些回调,现在发现了,如何处理它们.我错过的是两次应用该技术.谢谢.

JW.*_*JW. 17

只需创建一个返回新函数b的函数:

function getB(my1, my2) {
  return function() {
    a(my1, my2);
  }
}
Run Code Online (Sandbox Code Playgroud)

并像这样使用它:

var b = getB(my1, my2);
Run Code Online (Sandbox Code Playgroud)