我有一个小问题,我认为这可能是我对 Javascript 闭包的误解。
我有这段代码——
getStdOpts: function(tbl, filt) {
var vals = new Array();
this.srvs.getStdOptions(
{ tbl: tbl },
{
'ok': function(rsp) {
for (var i in rsp) {
vals.push({ value: rsp[i].id, text: rsp[i].descr });
}
}
}
);
return vals;
}
本质上,虽然 getStdOptions 调用中的内部函数 ('ok': function...) 将新值推送到 vals 数组中,但当从调用外部访问时,vals 数组为空。从内部函数中访问时, vals 包含预期的所有元素。
非常感谢我在这件事上能得到的任何帮助。