使用闭包/函数绑定将自身函数作为回调传递

时间:2016-04-12 05:35:17

标签: javascript function binding closures

是否可以使用闭包或函数绑定将自身函数作为函数内部回调的参数传递?

我使用了一些代码来更好地解释我想要实现的目标。

x: function(a, b, c){
 if(certain conditions not met){
   y(pass function x as argument along with arguments a,b,c for callback);
 }
 //blah blah
}
y: function(callbackFunc){
 //do some stuff
 //then execute callback function
 callbackFunc();
}

2 个答案:

答案 0 :(得分:1)

您可以将x定义为命名函数,在if条件下设置标志以确定是否传递x或调用x以防止递归调用{{ 1}}和y;使用xFunction.prototype.bind()设置为当前或其他对象,this处的备用标记,使用y调用x以访问传递给{{1}的原始参数};可选地将其他参数传递给y

x

答案 1 :(得分:0)

你可以尝试

 x: function(a, b, c){
     if(certain conditions not met){
       this.y(this.x, a,b,c);
     }
     //blah blah
    }
    y: function(callbackFunc,a1,b1,c1){
     //do some stuff
     //then execute callback function
     callbackFunc(a1,b1,c1);
    }

我写过a1,b1,c1只是为了区分,你可以用a,b,c