[英]Undefined variable in callback
我对Cordova插件的回调有问题,可以通过以下代码进行说明:
function foo(param) {
setTimeout(function(){
console.log("In:", param);
}, 1000);
console.log("Out:", param);
}
foo(1);
在此示例中,我通过简单的超时来假装插入回调调用。
预期结果是:
Out: 1
In: 1
但是我面临的问题是,在具有真实插件回调(而不是超时)的真实应用程序中,有时回调函数中的函数参数值是undefined
,就像在上一个示例中那样:
Out: 1
In: undefined
是否有意义? 在闭包中是否有变量(函数参数)不再可用?
在闭包中是否有变量(函数参数)不再可用?
是的,如果您通过分配给另一个值(例如, undefined
)来更改闭包范围中的参数,请参见示例:
function foo(param) {
setTimeout(function() {
console.log("In:", param);
}, 1000);
// some function that returns 'undefined'
var someFunction = function() {
return undefined;
};
console.log("Out:", param);
param = someFunction(); // or simply assign to 'undefined'
}
foo(1);
输出:
Out: 1
In: undefined
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.