【问题标题】:partially applying arguments without declaring a new function部分应用参数而不声明新函数
【发布时间】:2020-04-03 20:14:52
【问题描述】:

假设我有以下功能:

function needR(){
...
}
(function init (r) {
...
})();

请假设 init 可以是匿名的自执行函数,也可以不是,这真的不重要,我认为...
是否可以将 r 从 init 应用到 needR 而无需从中创建新函数?

我只是好奇,然后做了一些搜索,但一无所获,所以我假设这是不可行的,不仅不实用。但我想确定一下。

谢谢,

【问题讨论】:

  • 在任何函数外部声明var r;,并在init()处操作r
  • 你的意思是bind 没有bind ??
  • 如果是这样,我们不需要绑定:-D

标签: javascript apply


【解决方案1】:

不清楚您要做什么 (XY problem)。所以我建议绑定参数。尽管这在技术上确实“创建了一个您不想做的新功能”,但我认为您实际上的意思是没有开发人员明确定义一个新功能。

let sum = (a, b) => a + b;

let add5 = sum.bind(null, 5); // this is a new function

console.log(add5(3)); // 8

【讨论】:

  • 感谢您的链接,我想我已经解释了我想要实现的目标,但我的问题很清楚。你做的方式很好,但是,是的,这就是我想要避免的。感谢您抽出宝贵的时间来制作一个很好的答案。
猜你喜欢
  • 2013-08-07
  • 1970-01-01
  • 2018-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-03
  • 1970-01-01
  • 2016-06-13
相关资源
最近更新 更多