我正在尝试在调用variable
的function
中重新使用callback
,但是它无法按照我认为的方式工作;
another()(); //=> logs "somevalue"
callingfn(); //=> logs " someval is not defined"
function a(fn){
var someval = "some-value";
return fn();
}
function callingfn(){
return a.call(this, function(){
console.log(someval)
})
}
function another(){
var sv = "somevalue";
return function(){
console.log(sv);
}
}
我不知道这是否是与关闭有关的问题,但起初我希望
someval
中的callingfn
会被定义。我哪里错了?
最佳答案
函数fn()
与a()
不同,尽管它接收fn
作为参数。
您可以发送someval
作为参数。
another()(); //=> logs "somevalue"
callingfn(); //=> logs " someval is not defined"
function a(fn){
var someval = "some-value";
return fn(someval);
}
function callingfn(){
return a.call(this, function(someval){
console.log(someval)
})
}
function another(){
var sv = "somevalue";
return function(){
console.log(sv);
}
}
或简单地将
var someval
声明为全局范围,当前它在使它成为本地函数中。希望这可以帮助。