2016-07-23 34 views
0

具有下面的代码:如何通过函数参数中命名回调

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'); 
+0

回调是指一个变量,名为PARAM,我没有看到一个定义。那是故意的吗? – danh

+1

接受您的解决方案,但在匿名函数内部调用'callback(param)'并在'callback'函数中定义一个参数。如果这是一个问题,那么不需要改变你的功能。 – 2016-07-23 01:01:14

回答

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'); 
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');

相关问题