私は、おそらく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には期待どおりにすべての要素が含まれます。
私がこの問題に取り組むことができるどんな助けでも本当に感謝します。