如何在命名回调中传递函数参数

时间:2016-07-23 00:22:46

标签: javascript

拥有以下代码:

 var test1 = function(param){
    verify(callback);
}

var callback = function(){
    console.log(param);
}

var verify = function(inside){
   inside();
}

test1('I am the param');

如何在回调中提供param的可用值,因此控制台输出将是“我是参数”;

如果我使用匿名函数而不是callback,那么它可以工作:

var test1 = function(param){
    verify(function(){
        console.log(param);
    });
}

var verify = function(inside){
   inside();
}

test1('I am the param');

2 个答案:

答案 0 :(得分:2)

问题是callback函数不知道param的值。

您可以单独传递param来修复它。

var test1 = function(param1){
  verify(callback, param1);
}

var callback = function(param3){
  console.log(param3);
}

var verify = function(inside, param2){
  inside(param2);
}

test1('I am the param');

答案 1 :(得分:1)

我会为返回函数的回调做一个装饰器。在上下文中找到解决方案有点困难。但我会尝试一个例子

var test1 = function(param){
   verify(callback(param));
}

var callback = function(param){
    return function(){
         console.log(param);
     }
}

var verify = function(inside){
   inside();
}

test1('I am the param');