我正在调用此函数,将结果分配给回调中的变量,然后记录结果,但我一直未定义。
var id;
test.getID(function(result) {
id=result;
});
console.log(id);
如果我将其更改为下面的代码,那么我可以看到记录的ID。
var id;
test.getID(function(result) {
id=result;
console.log(id);
});
您知道我能做些什么来访问getID函数的结果吗?
答案 0 :(得分:1)
getID
函数需要先调用其参数,然后才能看到id
更改。
由于你没有提供它的实现,我们假设它是这样的。密切关注getID
的实现,它将函数作为参数f
,然后调用它。这是在设置id
时。
var id;
var test = {
getID: function(f){
var result = 666; //assume result comes from somewhere
f(result); //Note: this is where your function is getting invoked.
}
};
test.getID(function(result) {
id = result;
});
console.log(id); //prints 666
答案 1 :(得分:0)
closure对您也有用:
var id,
test = {
getID: function (id) {
this.id = id;
},
id: -1
};
test.getID((function(result) {
id=result;
return id;
})(78));
console.log(id);