有没有办法做这样的事情?
//in file 1
function foo(val1, callback){
callback(bar(val1)); //this will through an error
//callback(bar); is the proper way, but then I'm not passing val1 (and I need to be able to set val2 inside the file 2 callback)
}
function bar(val1, val2){
console.log(val1, val2);
}
//in file 2
foo('value1', function(bar){
bar('value2');
});
并拥有该日志:value1 value2
?
我知道我可以将val1
传递到回调中,然后再次以bar(val1, 'value2')
的形式传递,但是我想知道是否有一种方法可以自动传递val1
而不是手动传递。文件2函数foo
将要运行很多,每次我想运行bar()
答案 0 :(得分:0)
我不是javascript专家,但是我在这里找到了类似的内容:
https://stackoverflow.com/a/13286241/12380678
也许会有所帮助。
如果不是这种情况,或者您已经阅读过,那么抱歉浪费您的时间。
答案 1 :(得分:0)
我认为我发现了here
此答案建议让该函数返回另一个函数。这似乎可行。
//in file 1
function foo(val1, callback){
callback(bar(val1));
}
function bar(val1){
return function(val2){
console.log(val1, val2);
};
}
//in file 2
foo('value1', function(bar){
bar('value2');
});
方法2:使用.bind(在同一链接上找到)
//file 1
function foo(val1, callback){
callback(bar.bind(this, val1));
}
function bar(val1, val2){
console.log(val1, val2);
}
//file 2
foo('value1', function(bar){
bar('value2');
});