【问题标题】:An easier way of passing callback with preassigned argument in javascript?在javascript中使用预分配参数传递回调的更简单方法?
【发布时间】:2017-11-01 20:23:01
【问题描述】:

我打算将带有预分配参数的回调传递给另一个函数。

我创建了一个小提琴,但它似乎过于复杂。也许有更简单的方法:

a = function(b, c){
    console.log(b, c);
}

b = function(a){
    a('c');
}

b(
    (function(a, b){
        return function(c){
       a.apply(null,[b,c]);
    }
    })(a,'b')
);

这应该输出:“b c”

https://jsfiddle.net/j5gys95z/

【问题讨论】:

    标签: javascript callback arguments apply


    【解决方案1】:

    您可以使用.bind 来“修复”第一个n 参数(请参阅partial application):

    b(a.bind(null, 'b'))
    

    只要调用者不想设置回调的 this 值,或者如果您想修复 first n 之外的其他参数,它就可以工作。在这些情况下,您将定义一个新函数并根据需要传递 this / 参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-10
      • 1970-01-01
      • 2020-09-10
      • 2016-02-07
      • 1970-01-01
      • 2011-03-07
      • 2015-07-20
      相关资源
      最近更新 更多