如何将函数及其参数设置为回调?

时间:2015-05-25 15:30:10

标签: javascript

请考虑以下代码段:

$scope.delete=function(){
     foo('x',3);
};

有没有更干净的方式来写这个?我的意思是当回调函数由一行调用另一个函数时? (显然,我不能把它写成$scope.delete=foo('x',3)

2 个答案:

答案 0 :(得分:1)

您可以使用Function.prototype.bind()

  

bind()方法创建一个新函数,当被调用时,它具有它   此关键字设置为提供的值,具有给定的序列   调用新函数时提供的任何参数。

例如:

$scope.delete = foo.bind(null, 'x', 3);

答案 1 :(得分:1)

您可以按如下方式使用bind

$scope.delete=foo.bind(this, 'x',3);

第一个参数是函数上下文。也就是说,值this将在执行函数时采用。

来自MDN documentation

  

bind()方法创建一个新函数,当被调用时,它具有它   此关键字设置为提供的值,具有给定的序列   调用新函数时提供的任何参数。